我一直试图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)