xCov is a friendly visualizer for Xcode's code coverage files.
Installation
sudo gem install xcov
Features
- Built on top of Fastlane, you can easily plug it on to your CI environment.
- Generates nice HTML reports.
- Slack integration.
Requirements
In order to make xCov run you must:
- Use Xcode 7.
- Have the latest version of Xcode command line tools.
- Set your project scheme as shared.
- Enable the Gather coverage data setting available on your scheme settings window.
Usage
xCov analyzes the .xccoverage
files created after running your tests therefore, before executing xCov, you need to run your tests with either Xcode
, xcodebuild
or scan. Once completed, obtain your coverage report by providing a few parameters:
xcov -w LystSDK.xcworkspace -s LystSDK -o xcov_output
Parameters allowed
--workspace
-w
: Path of yourxcworkspace
file.--project
-p
: Path of yourxcodeproj
file (optional).--scheme
-s
: Scheme of the project to analyze.--output_directory
-o
: Path for the output folder where the report files will be saved.--derived_data_path
-j
: Path of your projectDerived Data
folder (optional).--minimum_coverage_percentage
-m
: Raise exception if overall coverage percentage is under this value (ie. 75)--include_test_targets
: Enables coverage reports for.xctest
targets--slack_url
-i
: Incoming WebHook for your Slack group to post results (optional).--slack_channel
-e
: Slack channel where the results will be posted (optional).--skip_slack
: Add this flag to avoid publishing results on Slack (optional).
Fastlane
Fastlane 1.61.0 includes xCov as a custom action. You can easily create your coverage reports as follows:
xcov(
workspace: "YourWorkspace.xcworkspace",
scheme: "YourScheme",
output_directory: "xcov_output"
)
Changelog
v.0.5
- Fixed bug using the
derived_data_path
option - Fixed bug sorting multiple
.xccoverage
files by datetime
v.0.4
- Additional flag to enable coverage reports for
.xctest
targets
v.0.3
- Raised exception when the minimum coverage threshold is not reached (by opfeffer)
v.0.2
- Fixed bug expanding/collapsing rows with same filename
- Added Fastlane integration to README
Contributors
License
This project is licensed under the terms of the MIT license. See the LICENSE file.