0

I have some builds that use NCover for test coverage analysis, and some that use DotCover. I merge the NCover/DotCover summary report into the ccnet log, but the item that I need to pull out into the ccnet "Coverage" statistic is different depending on the tool (because the format of the reports are different).

For NCover, I use the following:

    <statistics>
      <statisticList>
        <firstMatch name="Coverage"
                    xpath="//coverageReport/project/@coverage"
                    generateGraph="true" />
      </statisticList>
    </statistics>

For DotCover, I need this:

    <statistics>
      <statisticList>
        <firstMatch name="Coverage"
                    xpath="//Root/@CoveragePercent"
                    generateGraph="true" />
      </statisticList>
    </statistics>

Is there any way to specify both? If I just list both sections inside the statisticList, the second one always wins (so if I list DotCover second, builds that use NCover have their coverage stat set to zero, because the DotCover stat can't be found). What I want is for the stat to get set to the NCover stat if it exists, or to the DotCover stat if it exists.

Thanks for the help!

Stuart Lange
  • 4,049
  • 6
  • 24
  • 30

1 Answers1

1

You might be able to do an OR in the xpath expression, for example:

<statistics>
  <statisticList>
    <firstMatch name="Coverage"
                xpath="//Root/@CoveragePercent | //coverageReport/project/@coverage"
                generateGraph="true" />
  </statisticList>
</statistics>
russcollier
  • 709
  • 1
  • 9
  • 18