diff --git a/.travis.yml b/.travis.yml index 47ebb162b..2027a27c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,17 +7,18 @@ gemfile: before_install: - gem install bundler - bundle config --local without local_development yard guard -# env: -# - "rack=1.3.4" rvm: # 2.1, not 2.1.0 until fixed https://github.com/travis-ci/travis-ci/issues/2220 - 2.1 - 2.0.0 - 1.9.3 - 1.9.2 - - jruby - rbx-2 matrix: + include: + - rvm: jruby + env: JRUBY_OPTS="--debug" allow_failures: - rvm: rbx-2 - rvm: 2.1 + fast_finish: true diff --git a/lib/metric_fu/metrics/rcov/simplecov_formatter.rb b/lib/metric_fu/metrics/rcov/simplecov_formatter.rb index 68d1ba218..deace7bb0 100644 --- a/lib/metric_fu/metrics/rcov/simplecov_formatter.rb +++ b/lib/metric_fu/metrics/rcov/simplecov_formatter.rb @@ -1,3 +1,12 @@ +if defined?(JRUBY_VERSION) + if ENV["JRUBY_OPTS"].to_s !~ /-Xcli.debug=true/ + warn "Coverage may be inaccurate; Try setting JRUBY_OPTS=\"-Xcli.debug=true --debug\"" + # see https://github.com/metricfu/metric_fu/pull/226 + # https://github.com/jruby/jruby/issues/1196 + # https://jira.codehaus.org/browse/JRUBY-6106 + # https://github.com/colszowka/simplecov/issues/86 + end +end require 'simplecov' require_relative 'external_client' require_relative 'rcov_format_coverage' diff --git a/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb b/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb index aaa3dd427..c780e6ea8 100644 --- a/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb +++ b/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb @@ -34,6 +34,9 @@ expect(content).to match(/!! value \* value/) end + if defined?(JRUBY_VERSION) + STDOUT.puts "Skipping spec 'cause JRuby doesn't do Coverage right" + else it 'calculates the same coverage from an RCov report as from SimpleCov' do SimpleCov.start # start coverage require 'fixtures/coverage-153' @@ -60,6 +63,7 @@ expect(line.coverage).to eq(line_coverage_from_rcov_text[index]) end end + end end end