项目作者: f-meloni

项目描述 :
Show the coverage of the modified/created files on your PRs.
高级语言: Swift
项目地址: git://github.com/f-meloni/danger-swift-coverage.git
创建时间: 2019-01-26T20:10:30Z
项目社区:https://github.com/f-meloni/danger-swift-coverage

开源协议:MIT License

下载


DangerSwiftCoverage

Danger-Swift plugin to show the coverage of the modified/created files.

DangerSwiftCoverage

Getting Started

Install DangerSwiftCoverage

Swift Package Manager (More performant)

You can use a “full SPM” solution to install both danger-swift and DangerSwiftCoverage.

  • Add to your Package.swift:
  1. let package = Package(
  2. ...
  3. products: [
  4. ...
  5. .library(name: "DangerDeps", type: .dynamic, targets: ["DangerDependencies"]), // dev
  6. ...
  7. ],
  8. dependencies: [
  9. ...
  10. // Danger Plugins
  11. .package(url: "https://github.com/f-meloni/danger-swift-coverage", from: "0.1.0") // dev
  12. ...
  13. ],
  14. targets: [
  15. .target(name: "DangerDependencies", dependencies: ["Danger", "DangerSwiftCoverage"]), // dev
  16. ...
  17. ]
  18. )
  • Add the correct import to your Dangerfile.swift:
    ```swift
    import DangerSwiftCoverage

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

  1. - Create a folder called `DangerDependencies` on `Sources` with an empty file inside like [Fake.swift](Sources/DangerDependencies/Fake.swift)
  2. - To run `Danger` use `swift run danger-swift command`
  3. - (Recommended) If you are using SPM to distribute your framework, use [Rocket](https://github.com/f-meloni/Rocket), or similar to comment out all the dev depencencies from your `Package.swift`.
  4. This prevents the dev dependencies to be downloaded and compiled with your framework.
  5. #### Marathon
  6. - Add this to your `Dangerfile.swift`
  7. ```swift
  8. import DangerSwiftCoverage // package: https://github.com/f-meloni/danger-swift-coverage.git
  9. Coverage.xcodeBuildCoverage(.derivedDataFolder("Build"),
  10. minimumCoverage: 50,
  11. excludedTargets: ["DangerSwiftCoverageTests.xctest"])
  • (Recommended) Cache the ~/.danger-swift folder

Gather Coverage

  • Enable “Gather the Coverage” on Xcode

GatherCoverage

or, on your CI, execute:

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

Custom XCResultBundle path

If you are using the -resultBundlePath parameter on xcodebuild you will need to use:

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

Swift Package Manager

From Swift 5.0 you can gather the coverage from SPM with the --enable-code-coverage=true flag
For SPM coverage add to your Dangerfile:

  1. Coverage.spmCoverage(minimumCoverage: 50)

License

This project is licensed under the terms of the MIT license. See the LICENSE file.