Project

General

Profile

Actions

Feature #10816

closed

Add the ability to capture Coverage information

Added by tenderlovemaking (Aaron Patterson) about 9 years ago. Updated about 9 years ago.

Status:
Closed
Target version:
-
[ruby-core:67940]

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

snapshot.diff (3.39 KB) snapshot.diff tenderlovemaking (Aaron Patterson), 02/01/2015 11:57 PM

Updated by mame (Yusuke Endoh) about 9 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

Updated by zenspider (Ryan Davis) about 9 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) about 9 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:

https://www.youtube.com/watch?v=Qsn7nZEccBU

Updated by mame (Yusuke Endoh) about 9 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

Updated by tenderlovemaking (Aaron Patterson) about 9 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.

Actions #6

Updated by Anonymous about 9 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0