用于展示修改/创建文件的代码覆盖率的 Danger-Swift 插件。
您可以使用“完整 SPM”解决方案来安装 danger-swift
和 DangerSwiftCoverage
。
Package.swift
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
...
]
)
Dangerfile.swift
import DangerSwiftCoverage
Coverage.xcodeBuildCoverage(.derivedDataFolder("Build"),
minimumCoverage: 50,
excludedTargets: ["DangerSwiftCoverageTests.xctest"])
Sources
目录下创建一个名为 DangerDependencies
的文件夹,并在其中放入一个空文件,例如 Fake.swiftDanger
,请使用 swift run danger-swift command
Package.swift
中的所有开发依赖项。 这可以防止开发依赖项与您的框架一起下载和编译。Dangerfile.swift
import DangerSwiftCoverage // package: https://github.com/f-meloni/danger-swift-coverage.git
Coverage.xcodeBuildCoverage(.derivedDataFolder("Build"),
minimumCoverage: 50,
excludedTargets: ["DangerSwiftCoverageTests.xctest"])
~/.danger-swift
文件夹或者,在您的 CI 上,执行
xcodebuild test -scheme DangerSwiftCoverage-Package -derivedDataPath Build/ -enableCodeCoverage YES
如果您在 xcodebuild
中使用 -resultBundlePath
参数,则需要使用
Coverage.xcodeBuildCoverage(.xcresultBundle("Build/bundlePath.xcresult"),
minimumCoverage: 50,
excludedTargets: ["DangerSwiftCoverageTests.xctest"])
从 Swift 5.0 开始,您可以使用 --enable-code-coverage=true
标志从 SPM 收集覆盖率。 要为 SPM 添加覆盖率,请添加到您的 Dangerfile
Coverage.spmCoverage(minimumCoverage: 50)
本项目基于 MIT 许可证。查看 LICENSE 文件。