相关疑难解决方法(0)

使用MsTest进行SonarQube测试覆盖

我一直试图SonarQube使用一个简单的点网应用程序.我已经取得了一些成功,但是代码覆盖率无法正常运行.

当SonarQube停止支持许多"转到"覆盖工具(例如DotCover and OpenCovervia Gallio)时,看起来许多其他人都面临这个问题

我遵循的例子是:

我尝试了一些VS命令行工具来生成.coverage文件

vstest.console.exe .\UnitTestProject1\bin\Debug\UnitTestProject1.dll /EnableCodeCoverage
Run Code Online (Sandbox Code Playgroud)

CodeCoverage.exe collect /output:DynamicCodeCoverage.coverage .\UnitTestProject1\bin\Debug\UnitTestProject1.dll
Run Code Online (Sandbox Code Playgroud)

并写了一些代码,想把它.coveragexml这里转换成文件

要获得以下XML:

<?xml version="1.0" standalone="yes"?>
<CoverageDSPriv>
  <Module>
    <ModuleName>unittestproject1.dll</ModuleName>
    <ImageSize>32768</ImageSize>
    <ImageLinkTime>0</ImageLinkTime>
    <LinesCovered>12</LinesCovered>
    <LinesPartiallyCovered>0</LinesPartiallyCovered>
    <LinesNotCovered>0</LinesNotCovered>
    <BlocksCovered>9</BlocksCovered>
    <BlocksNotCovered>0</BlocksNotCovered>
    <NamespaceTable>
      <BlocksCovered>9</BlocksCovered>
      <BlocksNotCovered>0</BlocksNotCovered>
      <LinesCovered>12</LinesCovered>
      <LinesNotCovered>0</LinesNotCovered>
Run Code Online (Sandbox Code Playgroud)

甚至可以使用XSLT样式表提供可供SonarQube运行器使用的样式表

<?xml version="1.0" encoding="utf-8"?>
<results>
  <modules>
    <module name="unittestproject1.dll" path="unittestproject1.dll" block_coverage="100" line_coverage="100" blocks_covered="9" blocks_not_covered="0" lines_covered="12" lines_partially_covered="0" lines_not_covered="0">
      <functions>
        <function name="Setup" type_name="UnitTest1" block_coverage="100" line_coverage="100" blocks_covered="1" blocks_not_covered="0" lines_covered="2" lines_partially_covered="0" lines_not_covered="0">
          <ranges> …
Run Code Online (Sandbox Code Playgroud)

mstest code-coverage sonarqube vstest

9
推荐指数
1
解决办法
6939
查看次数

标签 统计

code-coverage ×1

mstest ×1

sonarqube ×1

vstest ×1