Cobertura de teste do SonarQube com o MsTest
Eu tenho tentadoSonarQube
trabalhando com um aplicativo simples de rede de pontos. Eu tive algum sucesso em colocá-lo em funcionamento, mas a cobertura do código não está funcionando.
Parece que muitas outras pessoas enfrentaram esse problema quando o SonarQube interrompeu o suporte a muitas das ferramentas de cobertura 'ir para', comoDotCover and OpenCover
através daGallio
Exemplos que eu segui são:
O arquivo runsettings do VS2013 CodeCoverage.exe nunca analisa
Eu tentei algumas das ferramentas de linha de comando do VS para gerar um.coverage
Arquivo
vstest.console.exe .\UnitTestProject1\bin\Debug\UnitTestProject1.dll /EnableCodeCoverage
e
CodeCoverage.exe collect /output:DynamicCodeCoverage.coverage .\UnitTestProject1\bin\Debug\UnitTestProject1.dll
E escrevi algum código para encobri-lo em um.coveragexml
arquivo deaqui
Para obter o seguinte 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>
E até a folha de estilo XSLT usada fornece uma que possa ser usada pelo corredor 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>
<range source_id="1" covered="yes" start_line="13" start_column="9" end_line="13" end_column="10" />
<range source_id="1" covered="yes" start_line="15" start_column="9" end_line="15" end_column="10" />
</ranges>
</function>
quando eu corro o Sonar
Iniciar o MSBuild.SonarQube.Runner.exeMSBuildFim do MSBuild.SonarQube.Runner.exeEu recebo erros como causados por:unknown XML Node
, EsperoCobertura mas tenhoResultados
Isso ocorre porque ele não gosta da estrutura do meu XML, mas não tenho certeza do que está esperando e quanto trabalho tenho que fazer no arquivo de cobertura para convertê-lo em um formato que o Sonar goste.
Espero estar seguindo o caminho errado e existe uma maneira simples de integrar o VS Coverage oucoveragexml
arquivos no Sonar sem muito trabalho
Informações adicionais sobre o meuSonar plugins
estão