Skip to content
This repository
Fetching contributors…


Cannot retrieve contributors at this time

file 268 lines (209 sloc) 15.752 kb

Unreleased (changes)


2013-11-20 (changes)


  • Replaced the locking behaviour via lockfile gem with plain Ruby explicit file locking when merging results. This should make simplecov merging to behave well on Windows again. See #258 and #223 (thanks to @tomykaira)

v0.8.1, 2013-11-10 (changes)


  • Fixed a regression introduced in 0.8.0 - the Forwardable STDLIB module is now required explicitly. See #256 (thanks to @kylev)

v0.8.0, 2013-11-10 (changes)

Note: Yanked the same day because of the regression that 0.8.1 fixes, see above


It's been way too long since the last official release 0.7.1, but this was partly due to it proving itself quite stable in most circumstances. This release brings various further stability improvements to result set merging (especially when working with parallel_tests), the configuration, source file encodings, and command name guessing.

The 0.8 line is the last one to cooperate with Ruby < 1.9. Starting with 0.9, SimpleCov will assume to be running in Ruby 1.9+, and will not try to detect or bail silently on older Ruby versions. An appropriate deprecation warning has been added.


  • Configuration blocks now have access to variables and methods outside of the block's scope. See #238 (thanks to @ms-tg)
  • You can now have a global ~/.simplecov configuration file. See #195 (thanks to @spagalloco)
  • simplecov-html now uses the MIT-licensed colorbox plugin. Some adjustments when viewing source files, including retaining the currently open file on refresh have been added. See simplecov-html #15 (thanks to @chetan)
  • Adds support for Rails 4 command guessing, removes default group vendor/plugins. See #181 and #203 (thanks to @semanticart and @phallstrom)
  • You can now load simplecov without the default settings by doing require 'simplecov/no_defaults' or setting ENV['SIMPLECOV_NO_DEFAULTS']. Check simplecov/defaults to see what preconfigurations are getting dropped by using this. See #209 (thanks to @ileitch)
  • The result set merging now uses the lockfile gem to avoid race conditions. See #185 (thanks to @jshraibman-mdsol).
  • Automatically detect the usage of parallel_tests and adjust the command name with the test env number accordingly, See #64 and #185 (thanks to @jshraibman-mdsol).


  • Rename adapters to "profiles" given that they are bundles of settings. The old adapter methods are deprecated, but remain available for now. See #207 (thanks to @mikerobe)
  • Tweaks to the automatic test suite naming. In particular, rspec/features should now be correctly attributed to RSpec, not Cucumber. See #212 (thanks to @ersatzryan and @betelgeuse)
  • MiniTest should now be identified correctly by the command name guesser. See #244 (thanks to @envygeeks)
  • Makes SimpleCov resilient to inclusion of mathn library. See #175 and #140 (thanks to @scotje)
  • Allow coverage_dir to be an absolute path.
  • See #190 (thanks to @jshraibman-mdsol)
  • The internal cucumber test suite now uses Capybara 2. See #206 (thanks to @infertux)
  • Work-arounds for the Coverage library shipped in JRuby 1.6 to behave in line with MRI. See #174 (thanks to @grddev)
  • Fix warning: instance variable @exit_status not initialized. See #242 and #213 (thanks to @sferik and @infertux)


  • Correct result calculations for people using :nocov: tags. See #215 (thanks to @aokolish)
  • Average hits per line for groups of files is now computed correctly. See #192 and #179 (thanks to @graysonwright)
  • Compatability with BINARY internal encoding. See #194 and #127 (thanks to @justfalter)
  • Special characters in SimpleCov.root are now correctly escaped before being used as a RegExp. See #204 and #237 (thanks to @rli9)

v0.7.1, 2012-10-12 (changes)

  • [BUGFIX] The gem packages of 0.7.0 (both simplecov and simplecov-html) pushed to Rubygems had some file permission issues, leading to problems when installing SimpleCov in a root/system Rubygems install and then trying to use it as a normal user (see, thanks @envygeeks for bringing it up). The gem build process has been changed to always enforce proper permissions before packaging to avoid this issue in the future.

v0.7.0, 2012-10-10 (changes)

v0.6.4, 2012-05-10 (changes)

v0.6.3, 2012-05-10 (changes)

  • [BUGFIX] Modified the API-changes for newer multi_json versions introduced with #122 and v0.6.2 so they are backwards-compatible with older multi_json gems in order to avoid simplecov polluting the multi_json minimum version requirement for entire applications. See
  • Added appraisal gem to the test setup in order to run the test suite against both 1.0 and 1.3 multi_json gems and ensure the above actually works :)

v0.6.2, 2012-04-20 (changes)

v0.6.1, 2012-02-24 (changes)

v0.6.0, 2012-02-22 (changes)

v0.5.4, 2011-10-12 (changes)

v0.5.3, 2011-09-13 (changes)

  • Fix for encoding issues that came from the nocov processing mechanism (see
  • :nocov: lines are now actually being reflected in the HTML report and are marked in yellow.

  • The Favicon in the HTML report is now determined by the overall coverage and will have the color that the coverage percentage gets as a css class to immediately indicate coverage status on first sight.

  • Introduced SimpleCov::SourceFile::Line#status method that returns the coverage status as a string for this line - made SimpleCov::HTML use that.

  • Refactored nocov processing and made it configurable using SimpleCov.ncov_token (or it's alias SimpleCov.skip_token)

v0.5.2, 2011-09-12 (changes)

v0.5.1, 2011-09-12 (changes)

Note: Yanked 2011-09-12 because the MultiJSON-patch had a crucial bug

v0.5.0, 2011-09-09 (changes)

Note: Yanked 2011-09-09 because of trouble with the gemspec.

  • JSON is now used instead of YAML for resultset caching (used for merging). Should resolve a lot of problems people used to have because of YAML parser errors.

  • There's a new adapter 'test_frameworks'. Use it outside of Rails to remove test/, spec/, features/ and autotest/ dirs from your coverage reports, either directly with SimpleCov.start 'test_frameworks' or with SimpleCov.load_adapter 'test_frameworks'

  • SimpleCov configuration can now be placed centrally in a text file .simplecov, which will be automatically read on require 'simplecov'. This makes using custom configuration like groups and filters across your test suites much easier as you only have to specify your config once. Just put the whole SimpleCov.start (...) code into APP_ROOT/.simplecov

  • Lines can now be skipped by using the :nocov: flag in comments that wrap the code that should be skipped, like in this example (thanks @phillipkoebbe)

      def skipped
          @foo * 2
  • Moved file set coverage analytics from simplecov-html to SimpleCov::FileList, a new subclass of Array that is always returned for SourceFile lists (i.e. in groups) and can now be used in all formatters without the need to roll your own.

  • The exceptions you used to get after removing some code and re-running your tests because SimpleCov couldn't find the cached source lines should be resolved (thanks @goneflyin)

  • Coverage strength metric: Average hits/line per source file and result group (thanks @trans)

  • Finally, SimpleCov has an extensive Cucumber test suite

  • Full compatibility with Ruby 1.9.3.preview1

HTML Formatter:

  • The display of source files has been improved a lot. Weird scrolling trouble, out-of-scope line hit counts and such should be a thing of the past. Also, it is prettier now.
  • Source files are now syntax highlighted
  • File paths no longer have that annoying './' in front of them
Something went wrong with that request. Please try again.