从.trx文件中提取代码覆盖率报告

时间:2019-10-31 07:19:56

标签: c# sonarqube code-coverage bamboo vstest.console.exe

我有一个在.net Framework 4.6中开发的c#Windows应用程序。
我已经使用vstest.console.exe运行以下命令来生成.trx文件,该文件具有有关代码覆盖率和测试用例的信息。
Bamboo的MSTest Parser能够读取trx文件并读取通过和失败的测试用例的数量。

如何读取同一文件以了解代码覆盖率报告?
我已经在记事本中打开了trx文件,最后有一个部分包含有关代码覆盖率的信息。

<ResultSummary outcome="Completed">
   <Counters total="91" executed="91" passed="91" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
   <CollectorDataEntries>
      <Collector agentName="mysystem" uri="datacollector://microsoft/CodeCoverage/2.0" collectorDisplayName="Code Coverage">
         <UriAttachments>
            <UriAttachment>
               <A href="mysystem\cpsvizuser_mysystem 2019-10-31 05_36_09.coverage" />
            </UriAttachment>
         </UriAttachments>
      </Collector>
   </CollectorDataEntries>
</ResultSummary>

这里没有提到代码覆盖率的百分比。任何人都可以帮助从.trx文件中提取代码覆盖率值。我实际上需要生成一个XML文件并将结果发布到sonarqube。在此问题上的任何帮助都是有帮助的。

2 个答案:

答案 0 :(得分:0)

您将需要使用另一个软件包来计算代码覆盖率。我在Coverlet(一种免费的开源解决方案)上取得了成功。还有很多商业解决方案,例如NCover或JetBrain的dotCover

答案 1 :(得分:0)

.coverage中列出的UriAttachment文件是一个包含代码覆盖率数据的二进制文件。您可以使用VS Enterprise随附的CodeCoverage.exe工具将其转换为XML格式(大概与您最初用于收集coverage数据的工具相同)。

有关更多信息,请参见this helpful page