{"id":13684455,"url":"https://github.com/f-meloni/danger-swift-coverage","last_synced_at":"2025-04-14T13:11:59.755Z","repository":{"id":50291797,"uuid":"167733875","full_name":"f-meloni/danger-swift-coverage","owner":"f-meloni","description":"Show the coverage of the modified/created files on your PRs.","archived":false,"fork":false,"pushed_at":"2022-07-28T05:38:27.000Z","size":741,"stargazers_count":85,"open_issues_count":9,"forks_count":20,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-29T13:04:20.075Z","etag":null,"topics":["coverage","danger","danger-plugin","danger-swift","spm","swift","swift-package-manager","test","test-driven-development","testing","tools","xcodebuild","xcodeproj"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/f-meloni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-26T20:10:30.000Z","updated_at":"2024-10-08T13:49:45.000Z","dependencies_parsed_at":"2022-08-25T12:00:51.984Z","dependency_job_id":null,"html_url":"https://github.com/f-meloni/danger-swift-coverage","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-meloni%2Fdanger-swift-coverage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-meloni%2Fdanger-swift-coverage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-meloni%2Fdanger-swift-coverage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-meloni%2Fdanger-swift-coverage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f-meloni","download_url":"https://codeload.github.com/f-meloni/danger-swift-coverage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886324,"owners_count":21177643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coverage","danger","danger-plugin","danger-swift","spm","swift","swift-package-manager","test","test-driven-development","testing","tools","xcodebuild","xcodeproj"],"created_at":"2024-08-02T14:00:33.751Z","updated_at":"2025-04-14T13:11:59.053Z","avatar_url":"https://github.com/f-meloni.png","language":"Swift","funding_links":[],"categories":["Plugins"],"sub_categories":["Swift (danger-swift)"],"readme":"# DangerSwiftCoverage\n\n[Danger-Swift](https://github.com/danger/swift) plugin to show the coverage of the modified/created files.\n\n![DangerSwiftCoverage](Images/DangerSwiftCoverage.png)\n\n## Getting Started\n\n### Install DangerSwiftCoverage\n#### Swift Package Manager (More performant)\nYou can use a \"full SPM\" solution to install both `danger-swift` and `DangerSwiftCoverage`.\n\n- Add to your `Package.swift`:\n\n```swift\nlet package = Package(\n    ...\n    products: [\n        ...\n        .library(name: \"DangerDeps\", type: .dynamic, targets: [\"DangerDependencies\"]), // dev\n        ...\n    ],\n    dependencies: [\n        ...\n        // Danger Plugins\n        .package(url: \"https://github.com/f-meloni/danger-swift-coverage\", from: \"0.1.0\") // dev\n        ...\n    ],\n    targets: [\n        .target(name: \"DangerDependencies\", dependencies: [\"Danger\", \"DangerSwiftCoverage\"]), // dev\n        ...\n    ]\n)\n```\n\n- Add the correct import to your `Dangerfile.swift`:\n```swift\nimport DangerSwiftCoverage\n\nCoverage.xcodeBuildCoverage(.derivedDataFolder(\"Build\"), \n                            minimumCoverage: 50, \n                            excludedTargets: [\"DangerSwiftCoverageTests.xctest\"])\n```\n\n- Create a folder called `DangerDependencies` on `Sources` with an empty file inside like [Fake.swift](Sources/DangerDependencies/Fake.swift)\n- To run `Danger` use `swift run danger-swift command`\n- (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`.\nThis prevents the dev dependencies to be downloaded and compiled with your framework.\n\n#### Marathon\n- Add this to your `Dangerfile.swift`\n\n```swift\nimport DangerSwiftCoverage // package: https://github.com/f-meloni/danger-swift-coverage.git\n\nCoverage.xcodeBuildCoverage(.derivedDataFolder(\"Build\"), \n                            minimumCoverage: 50, \n                            excludedTargets: [\"DangerSwiftCoverageTests.xctest\"])\n```\n\n- (Recommended) Cache the `~/.danger-swift` folder\n\n### Gather Coverage\n\n- Enable \"Gather the Coverage\" on Xcode \n\n![GatherCoverage](Images/GatherCoverage.png)\n\nor, on your CI, execute: \n```bash\nxcodebuild test -scheme DangerSwiftCoverage-Package -derivedDataPath Build/ -enableCodeCoverage YES\n```\n\n### Custom XCResultBundle path\nIf you are using the `-resultBundlePath` parameter on `xcodebuild` you will need to use:\n```\nCoverage.xcodeBuildCoverage(.xcresultBundle(\"Build/bundlePath.xcresult\"), \n                            minimumCoverage: 50, \n                            excludedTargets: [\"DangerSwiftCoverageTests.xctest\"])\n```\n\n### Swift Package Manager\nFrom Swift 5.0 you can gather the coverage from SPM with the `--enable-code-coverage=true` flag\nFor SPM coverage add to your Dangerfile:\n\n```swift\nCoverage.spmCoverage(minimumCoverage: 50)\n```\n\n## License\nThis project is licensed under the terms of the MIT license. See the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff-meloni%2Fdanger-swift-coverage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff-meloni%2Fdanger-swift-coverage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff-meloni%2Fdanger-swift-coverage/lists"}