Actions
Bug #12480
closedRestarting Coverage does not capture additional coverage for already loaded files
Description
I'm trying to combine coverage from before fork and after fork to make coverage reporting work in a forking test runner.
The problem I ran into is 2-fold:
- A: when forking, previous coverage is lost
- B: when restarting coverage, old files do not get added to
I could work around issue A by storing the old result and then merging it with the new result post fork, but issue B makes that impossible.
Please fix either A or B ...
Reproduction steps for A:
# reproduce.rb
require 'coverage'
Coverage.start
require_relative 'test'
a
fork do
b
new = Coverage.result
puts "NEW: #{new}"
end
# test.rb
def a
1
end
def b
1
end
NEW: {"/Users/mgrosser/Code/tools/forking_test_runner/test.rb"=>[0, 0, nil, nil, 0, 1, nil]}
-> missing coverage information for method a
Reproduction steps for B:
# reproduce.rb
require 'coverage'
Coverage.start
require_relative 'test'
a
old = Coverage.result
Coverage.start
b
new = Coverage.result
puts "OLD: #{old} -- NEW: #{new}"
# test.rb
def a
1
end
def b
1
end
OLD: {"test.rb"=>[1, 1, nil, nil, 1, 0, nil]} -- NEW: {"test.rb"=>[]}
-> missing coverage information for method b
Actions
Like0
Like0Like0Like0