Cobertura de prueba de SonarQube con MsTest

He estado tratando de conseguirSonarQube trabajando con una simple aplicación dot net. He tenido éxito al ponerlo en funcionamiento, pero la cobertura del código no funciona.

Parece que muchas otras personas se han enfrentado a este problema cuando SonarQube suspendió el soporte para muchas de las herramientas de cobertura 'ir a' comoDotCover and OpenCover víaGallio

Los ejemplos que he seguido son:

Sonar Runner falla durante el procesamiento del archivo .coveragexml producido a partir de MSTest de Visual Studio

El archivo de configuración de ejecución VS2013 CodeCoverage.exe nunca analiza

He probado algunas de las herramientas de línea de comandos VS para generar un.coverage archivo

vstest.console.exe .\UnitTestProject1\bin\Debug\UnitTestProject1.dll /EnableCodeCoverage

y

CodeCoverage.exe collect /output:DynamicCodeCoverage.coverage .\UnitTestProject1\bin\Debug\UnitTestProject1.dll

Y escribió un código como convertirlo en un.coveragexml archivo deaquí

Para obtener el siguiente 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 incluso la hoja de estilo XSLT utilizada proporciona una que podría ser utilizada por el 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>

cuando corro Sonar

MSBuild.SonarQube.Runner.exe ComenzarMSBuildMSBuild.SonarQube.Runner.exe final

Recibo errores como Causado por:unknown XML NodeEsperarCobertura&nbsp;pero tengoResultados

Esto se debe a que no le gusta la estructura de mi XML, pero no estoy seguro de lo que está esperando y cuánto trabajo tengo que hacer en el archivo de cobertura para convertirlo a un formato que le guste a Sonar

Con suerte, he estado yendo por el camino equivocado y hay una manera simple de integrar la cobertura VS ocoveragexml&nbsp;archivos en Sonar sin demasiado trabajo

Información adicional sobre miSonar plugins&nbsp;son

c # = 4.1Cobertura Genérica = 1.1