From: dan@... Date: 2014-06-15T13:51:46+00:00 Subject: [ruby-core:63181] [ruby-trunk - Bug #9572] Restarting Coverage does not produce correct coverage result Issue #9572 has been updated by Dan Mayer. I have been having this problem as well. It seems good that Coverage.result resets the coverage data, but once Coverage.start is called again it seems like it should start building up new coverage from that point on. In the example code I have for instance I would expect the second call to coverage results, to not show `method_a` being called, but it should show `method_b`. Check this small git repo for an example of the problem I am seeing. https://github.com/danmayer/coverage-bug Without being able to collect additional coverage data after restarting it makes gathering coverage data via sampling not possible. Perhaps this is the expected output, if so could someone explain expected behavior or why the current way would be preferred. ---------------------------------------- Bug #9572: Restarting Coverage does not produce correct coverage result https://bugs.ruby-lang.org/issues/9572#change-47234 * Author: Sean Ferguson * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 * ruby -v: uby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.4.0] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Feature 4796(https://www.ruby-forum.com/topic/1811306#1001864) appears to have a bug in it. While the test listed there does pass the following test does not:
require "test/unit"
require "coverage"
require 'tmpdir'
class TestCoverage < Test::Unit::TestCase
def test_restarting_coverage
Dir.mktmpdir {|tmp|
Dir.chdir(tmp) {
File.open("test.rb", "w") do |f|
f.puts <<-EOS
def coverage_test_method
puts :ok
end
EOS
end
Coverage.start
require tmp + '/test.rb'
Coverage.result
Coverage.start
coverage_test_method
result = Coverage.result
assert_equal 1, result.size
assert_equal [0, 1, nil], result.first[1] # coverage stats show an empty array here
}
}
end
end
It appears that while the coverage is finding the correct files it is
not giving any coverage stats for those files. Knowing this information would be very helpful in determining test coverage data for individual test files. I'm not very familiar
with how the coverage library works, but if you can point me at where to
look I can give fixing it a try.
Thanks,
Sean Ferguson
--
https://bugs.ruby-lang.org/