RuboCop Checkstyle Formatter
A formatter for RuboCop that outputs in checkstyle format. It requires RuboCop version 1.20.0 or above.
Installation
Add this line to your application's Gemfile:
gem 'rubocop-checkstyle_formatter', require: false
And then execute:
$ bundle
Or install it yourself as:
$ gem install rubocop-checkstyle_formatter
Usage
$ rubocop --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter
Set RUBOCOP_CHECKSTYLE_FORMATTER_OUTPUT_EMPTY_RESULT=false to omit <file>
elements for files without offenses. The value is case-insensitive; by default,
and for all other values, those empty elements are included.
When empty <file> elements are emitted, the formatter warns on stderr that
this default will change in a future version. Set the variable to false now
to omit them and suppress the warning.
I use this formatter in Jenkins with Checkstyle plugin. As a part of build, I execute rubocop as shell script like:
bundle exec rubocop --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --no-color --rails --out tmp/checkstyle.xml
Then, after build, I add post-build action 'Publish Checkstyle analysis results' and configure Checkstyle results to "tmp/checkstyle.xml".
Known limitations
Offense messages are written into the message attribute via REXML, which escapes
&, <, >, ', and " automatically, so these characters are safe to include in
cop messages. Raw control characters (e.g. \x01), however, are illegal in XML 1.0
and will cause REXML to raise an error while writing the report.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request