Skip to content
A Coveralls client that supports multi-language repos
Branch: main
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

coveralls-multi Travis Coverage Status


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

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.


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


  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]
  simplecov: coverage/.resultset.json
  lcov: coverage/
  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.


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


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

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


Bug reports and pull requests are welcome on GitHub at 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.


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.

You can’t perform that action at this time.