fastlane-community / Xcov

Licence: mit
Nice code coverage reporting without hassle

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Xcov

Moderncppstarter
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Stars: ✭ 2,381 (+409.85%)
Mutual labels:  ci, continuous-integration, coverage
Apprepositorytemplate
The easiest way to start a new application project without any manual configuration
Stars: ✭ 24 (-94.86%)
Mutual labels:  fastlane, xcode, ci
Codecov Python
Python report uploader for Codecov
Stars: ✭ 162 (-65.31%)
Mutual labels:  ci, coverage, coverage-report
Xcperfect
Make your xccov outputs prettier ✨
Stars: ✭ 56 (-88.01%)
Mutual labels:  command-line-tool, xcode, coverage
Moderncppci
This is an example of doing a Modern C++ project with CI
Stars: ✭ 109 (-76.66%)
Mutual labels:  xcode, ci, continuous-integration
python-test-reporter
DEPRECATED Uploads Python test coverage data to Code Climate
Stars: ✭ 18 (-96.15%)
Mutual labels:  continuous-integration, ci, coverage-report
github-act-runner
act as self-hosted runner
Stars: ✭ 68 (-85.44%)
Mutual labels:  continuous-integration, ci
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-92.08%)
Mutual labels:  continuous-integration, ci
bx-docker
Tutorial on how to build Docker Images for the IAR Build Tools on Linux hosts. The IAR Build Tools on Linux are available for Arm, RISC-V and Renesas (RH850, RL78 and RX).
Stars: ✭ 28 (-94%)
Mutual labels:  continuous-integration, ci
Typo3 Console
Console command for TYPO3 CMS
Stars: ✭ 254 (-45.61%)
Mutual labels:  command-line-tool, continuous-integration
generate-changelog
generates changelog from git based on jira tickets
Stars: ✭ 18 (-96.15%)
Mutual labels:  continuous-integration, ci
frankencover.it
Code coverage for iOS and OSX.
Stars: ✭ 102 (-78.16%)
Mutual labels:  coverage, coverage-report
Alloy ci
Continuous Integration, Deployment, and Delivery coordinator, written in Elixir.
Stars: ✭ 274 (-41.33%)
Mutual labels:  ci, continuous-integration
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (-3.43%)
Mutual labels:  ci, continuous-integration
Format.cmake
💅 Stylize your code! Automatic clang-format and cmake-format targets for CMake.
Stars: ✭ 94 (-79.87%)
Mutual labels:  continuous-integration, ci
clusterfuzzlite
ClusterFuzzLite - Simple continuous fuzzing that runs in CI.
Stars: ✭ 315 (-32.55%)
Mutual labels:  continuous-integration, ci
qodana-action
⚙️ Scan your Java, Kotlin, PHP, Python, JavaScript, TypeScript projects at GitHub with Qodana
Stars: ✭ 112 (-76.02%)
Mutual labels:  continuous-integration, ci
python-project-skeleton
An up-to-date and explanatory Python project skeleton with contiuous integration services.
Stars: ✭ 31 (-93.36%)
Mutual labels:  continuous-integration, ci
Ccmenu
CCMenu is a Mac application to monitor continuous integration servers.
Stars: ✭ 306 (-34.48%)
Mutual labels:  ci, continuous-integration
Circleci Cli
Use CircleCI from the command line
Stars: ✭ 297 (-36.4%)
Mutual labels:  command-line-tool, continuous-integration

xcov Logo


Twitter: @nakiostudio License Gem Gem Downloads

xcov is a friendly visualizer for Xcode's code coverage files.

Maintainers needed

Installation

sudo gem install xcov

Features

  • Built on top of fastlane, you can easily plug it on to your CI environment.
  • Blacklisting of those files which coverage you want to ignore.
  • Minimum acceptable coverage percentage.
  • Compatible with Coveralls.
  • Nice HTML, JSON and Markdown reports.

  • Slack integration.

Requirements

In order to make xcov run you must:

  • Use Xcode 7 or above.
  • 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 and .xccovreport 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 your xcworkspace file.
  • --project -p: Path of your xcodeproj file (optional).
  • --scheme -s: Scheme of the project to analyze.
  • --configuration -q: The configuration used when building the app. Defaults to 'Release' (optional).
  • --output_directory -o: Path for the output folder where the report files will be saved.
  • --source_directory -r: The path to project's root directory (optional).
  • --derived_data_path -j: Path of your project Derived Data folder (optional).
  • --xccov_file_direct_path -f: Direct path to the xccoverage/xccovreport file to parse to generate code coverage (optional).
  • --minimum_coverage_percentage -m: Raise exception if overall coverage percentage is under this value (ie. 75.0).
  • --include_test_targets: Enables coverage reports for .xctest targets.
  • --ignore_file_path -x: Relative or absolute path to the file containing the list of ignored files.
  • --exclude_targets: Comma separated list of targets to exclude from coverage report.
  • --include_targets: Comma separated list of targets to include in coverage report.
  • --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).
  • --html_report: Enables the creation of a html report. Enabled by default (optional).
  • --json_report: Enables the creation of a json report (optional).
  • --markdown_report: Enables the creation of a markdown report (optional).
  • --skip_slack: Add this flag to avoid publishing results on Slack (optional).
  • --only_project_targets: Display the coverage only for main project targets (e.g. skip Pods targets).
  • --disable_coveralls: Add this flag to disable automatic submission to Coveralls.
  • --coveralls_service_name: Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id (optional).
  • --coveralls_service_job_id: Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name (optional).
  • --coveralls_repo_token: Repository token to be used by integrations not compatible with Coveralls (optional).
  • --slack_username: The username which is used to publish to slack (optional).
  • --slack_message: The message which is published together with a successful report (optional).
  • --legacy_support: Enables parsing coverage reports generated by Xcode 9.2 or previous versions.

Note: All paths you provide should be absolute and unescaped

Ignoring files

You can easily ignore the coverage for a specified set of files by adding their filenames to the ignore file specified with the --ignore_file_path parameter (this file is .xcovignore by default). You can also specify a wildcard expression for matching a group of files.

If you want to ignore all the files from a directory (folder), specify directory's relative path in ignore file. Also, specify source_directory if that differs from working directory (which is the default value).

Each one of the filenames you would like to ignore must be prefixed by the dash symbol -. In addition you can comment lines by prefixing them by #. Example:

# Api files
- LSTSessionApi.swift
- LSTComponentsApi.swift
- LSTNotificationsApi.swift

# Managers
- LSTRequestManager.m
- LSTCookiesManager.m

# Utils
- LSTStateMachine.swift

# Exclude all files ending by "View.swift"
- .*View.swift

# Exclude all dependencies
- Pods
- Carthage/Checkouts

Note: Ignores are handled case-insensitively. Pods will match any of pods, PODS, or Pods.

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"
)  

Danger

With the Danger plugin you can receive your coverage reports directly on your pull requests. You can find more information on the plugin repository available here.

Coveralls

If you want to keep track of the coverage evolution and get some extra features, xcov allows you to submit coverage reports to Coveralls. To do so, simply create an account and run xcov setting the options coveralls_service_name and coveralls_service_job_id for compatible CI environments. However, if you want to post to Coveralls from the console or any custom environment simply set the coveralls_repo_token option.

Contributors

nakiostudio opfeffer stevenreinisch hds michaelharro thelvis4 KrauseFx BennX initFabian revolter chrisballinger ngs aaroncrespo cmarchal

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].