DangerSwiftCoverage

用于展示修改/创建文件的代码覆盖率的 Danger-Swift 插件。

DangerSwiftCoverage

快速开始

安装 DangerSwiftCoverage

Swift Package Manager (更高效)

您可以使用“完整 SPM”解决方案来安装 danger-swiftDangerSwiftCoverage

let package = Package(
    ...
    products: [
        ...
        .library(name: "DangerDeps", type: .dynamic, targets: ["DangerDependencies"]), // dev
        ...
    ],
    dependencies: [
        ...
        // Danger Plugins
        .package(url: "https://github.com/f-meloni/danger-swift-coverage", from: "0.1.0") // dev
        ...
    ],
    targets: [
        .target(name: "DangerDependencies", dependencies: ["Danger", "DangerSwiftCoverage"]), // dev
        ...
    ]
)
import DangerSwiftCoverage

Coverage.xcodeBuildCoverage(.derivedDataFolder("Build"), 
                            minimumCoverage: 50, 
                            excludedTargets: ["DangerSwiftCoverageTests.xctest"])

Marathon

import DangerSwiftCoverage // package: https://github.com/f-meloni/danger-swift-coverage.git

Coverage.xcodeBuildCoverage(.derivedDataFolder("Build"), 
                            minimumCoverage: 50, 
                            excludedTargets: ["DangerSwiftCoverageTests.xctest"])

收集覆盖率数据

GatherCoverage

或者,在您的 CI 上,执行

xcodebuild test -scheme DangerSwiftCoverage-Package -derivedDataPath Build/ -enableCodeCoverage YES

自定义 XCResultBundle 路径

如果您在 xcodebuild 中使用 -resultBundlePath 参数,则需要使用

Coverage.xcodeBuildCoverage(.xcresultBundle("Build/bundlePath.xcresult"), 
                            minimumCoverage: 50, 
                            excludedTargets: ["DangerSwiftCoverageTests.xctest"])

Swift Package Manager

从 Swift 5.0 开始,您可以使用 --enable-code-coverage=true 标志从 SPM 收集覆盖率。 要为 SPM 添加覆盖率,请添加到您的 Dangerfile

Coverage.spmCoverage(minimumCoverage: 50)

许可证

本项目基于 MIT 许可证。查看 LICENSE 文件。