RSpec JUnit Formatter
RSpec 2 & 3 results that Jenkins can read. Probably a few other CI services, too.
Inspired by the work of Diego Souza on RSpec Formatters after frustration with CI Reporter.
Usage
Install the gem:
gem install rspec_junit_formatter
Use it:
rspec --format RspecJunitFormatter --out rspec.xml
You’ll get an XML file rspec.xml
with your results in it.
You can use it in combination with other formatters, too:
rspec --format progress --format RspecJunitFormatter --out rspec.xml
Using in your project with Bundler
Add it to your Gemfile if you’re using Bundler. Put it in the same groups as rspec.
group :test do gem "rspec" gem "rspec_junit_formatter" end
Put the same arguments as the commands above in your .rspec
:
--format RspecJunitFormatter --out rspec.xml
Parallel tests
For use with parallel_tests
, add $TEST_ENV_NUMBER
in the output file option (in .rspec
or .rspec_parallel
) to avoid concurrent process write conflicts.
--format RspecJunitFormatter --out tmp/rspec<%= ENV["TEST_ENV_NUMBER"] %>.xml
The formatter includes $TEST_ENV_NUMBER
in the test suite name within the XML, too.
Caveats
- XML can only represent a limited subset of characters which
excludes null bytes and most control characters. This gem will use character
entities where possible and fall back to replacing invalid characters with
Ruby-like escape codes otherwise. For example, the null byte becomes
\0
.
Roadmap
- It would be nice to split things up into individual test suites, although would this correspond to example groups? The subject? The spec file? Not sure yet.
License
The MIT License, see LICENSE.