coveralls-multi Travis Coverage Status

CoverallsMulti

CoverallsMulti is a Coveralls client with support for multi-language repos. Once you've set up coverage tools for all the languages in your repo, specify the paths to your coverage output files in .coveralls.yml and let CoverallsMulti handle formatting them, merging them into one big superfile, and posting the result to Coveralls.io.

Currently supported:

Languages & Output Formats

Language Coverage tool Config key
Elixir ExCoveralls (JSON output) excoveralls
JavaScript nyc, or any tool that can output an lcov file lcov
Ruby SimpleCov simplecov

CI Providers

  • TravisCI

Coming Soon

Have another language, tool, or CI provider you'd like to see supported? File an issue.

Installation

Add this line to the test group in your application's Gemfile:

gem 'coveralls-multi'

And then execute:

$ bundle

Or install it yourself as:

$ gem install coveralls-multi

Usage

  1. Set up coverage measurement for each language. Coveralls-multi is only concerned with formatting & posting the output files, so choice of tooling is up to you.

  2. Once you know where the output files will go, set up your .coveralls.yml with the appropriate keys and paths like so (see supported languages above for more details on the supported config keys):

service_name: travis-ci
repo_token: [REPO_TOKEN]
multi:
  simplecov: coverage/.resultset.json
  lcov: coverage/lcov.info
  excoveralls: cover/excoveralls.json
  1. Run coveralls-multi to merge the output files and send them to Coveralls. In a CI environment, you can run coveralls-multi as an final step after you run your test commands.

Note for ExCoveralls: Currently, formatting will break if the ExCoveralls output directory is called something other than the default cover. You don't need to worry about this unless you've changed the default output_dir in your ExCoveralls config.

Troubleshooting

Debug mode will save and output the merged file so you can take a closer look. To enable debug mode, add the following line to .coveralls.yml:

debug_mode: true

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

TODO: add better contributing instructions (especially for adding a new formatter)

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/radditude/coveralls-multi. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the CoverallsMulti project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.