<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 11, 2017 at 2:49 PM, Brian Warner <span dir="ltr"><<a href="mailto:warner@lothar.com" target="_blank">warner@lothar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Tahoe-LAFS devchat 11-Apr-2017<br><br>
* warner saw intermittent test coverage (flagged by codecov on the last<br>
  few PRs that landed)<br>
  * will file a ticket with the lines that are sometimes covered<br>
  * we should figure out what's going on, add tests to cover them<br>
    properly<br>
  * new PRs that don't touch code (e.g. docs) should (obviously) never<br>
    cause coverage regressions<br>
  * it'd be nice if there was a tool to show which test files provided<br>
    which coverage<br>
    * so we can make sure unit-test files get full coverage on<br>
      individual modules<br>
    * then integration-like tests are useful too, but we don't depend<br>
      upon them for coverage<br></blockquote><div><br></div><div><br></div><div><div>Here is the very ancient, abandoned piece of software I mentioned which is capable of telling you which code was executed by which test methods:</div><div><br></div><div><a href="https://launchpad.net/merit">https://launchpad.net/merit</a></div><div><br></div><div>Note it works by instrumenting a pyunit-style TestResult so it will probably only work with pyunit-style tests.</div><div><br></div><div>Also it's so ancient I don't know if it works at all anymore.  But it illustrates one possible solution to the problem, at least.</div><div><br></div><div>With a properly working tool of this sort, one could compare reports from multiple test runs of the same code and see which code is not consistently covered by the same tests.  Removing such cases would presumably help make coverage reporting tools like codecov more useful by removing noise from their results that comes from coverage results that vary without underlying code changes.</div><div><br></div><div>Jean-Paul</div></div><div><br></div></div></div></div>