Improving handling of new classes in the 'movers' report

XMLWordPrintable

    • Type: Suggestion
    • Resolution: Fixed
    • 2.3
    • Component/s: None
    • None

      It is possible that this has been fixed with Clover 2, in which case feel free to close this.

      We are making a big push internally to track our Clover coverage, and we are finding the 'movers' report to be really helpful in that regard. We are sending out a nightly email showing the movers so that we can immediately see if developers are checking in code that is causing reductions in code coverage.

      However, there is one oddity that is causing us trouble. When a new class is added to the code base, it appears that the report treats its 'old coverage' as being 0%. This means that a new class can be added without any tests at all, but it won't show up in the movers list. This is really bad for us, because we don't want to allow any code to be below our coverage threshold (we're aiming for 80% at the moment). Similarly, if a new class comes in with coverage at 50%, it is shown as an increase of 50%, even though this is still well below our current threshold. We really want classes coming in with no coverage to be considered a very bad thing in the movers report.

      One simple option would be to assume that new classes come in with 100% coverage, so that if the coverage is not complete it will show up in the list of downward movers. A compromise would instead to take the previous average coverage (say 80%), and to require that the new class at least meets that level. So coming in at 100% would be seen as +20%, while coming in at 0% would show up as -80%.

      Does this make sense? Has this already been implemented for Clover 2 reports?

        There are no Sub-Tasks for this issue.

            Assignee:
            Unassigned
            Reporter:
            Andy Armstrong
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: