Feature #10816
closedAdd the ability to capture Coverage information
Description
Hi,
I would like to periodically capture coverage information. The reason is because I would like to be able to pair test methods with the lines executed for that test method. The question I would like to answer is "If I modify file A on line B, which tests should I execute?"
I've attached a patch that returns a snapshot of the current coverage information. It means that I can grab coverage information before and after each test case, then calculate which lines of code a particular test executed.
Files
Updated by mame (Yusuke Endoh) almost 10 years ago
Sounds good to me. I'm positive to import the feature.
I'd like to hear any opinion from the direct users of the feature, such as the authors of coverage measurement frontend tool (such as simplecov) or testing frameworks.
The question I would like to answer is "If I modify file A on line B, which tests should I execute?"
FYI: I think it is called "regression test selection."
--
Yusuke Endoh mame@ruby-lang.org
Updated by zenspider (Ryan Davis) almost 10 years ago
I can absolutely see tying this into minitest-autotest to make it smarter about what tests to run on edit.
Updated by tenderlovemaking (Aaron Patterson) almost 10 years ago
I made a proof of concept program (using the patch I've posted here):
https://gist.github.com/tenderlove/fba8eaf2b2e3d84d77c5
Here is a video of it being used:
Updated by mame (Yusuke Endoh) almost 10 years ago
Sorry for leaving this ticket and thank you for commenting and creating a proof-of-concept.
Fair enough. Aaron, could you commit your patch?
--
Yusuke Endoh mame@ruby-lang.org
Updated by tenderlovemaking (Aaron Patterson) almost 10 years ago
Sorry for leaving this ticket and thank you for commenting and creating a proof-of-concept.
No problem. I'm really excited about this feature (sorry if I seem impatient).
Aaron, could you commit your patch?
Yes, I'll commit it.
Updated by Anonymous almost 10 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r49589.
-
ext/coverage/coverage.c: Add Coverage.peek_result. Allows you to
capture coverage information without stopping the coverage tool.
[ruby-core:67940] [Feature #10816] -
test/coverage/test_coverage.rb: test for change.