code-coverage - professional - view code coverage visual studio 2017
.net core proyectos código cobertura visual studio 2017 (6)
Basado en este artículo (la https://github.com/Microsoft/vstest/issues/597 ):
Actualmente, la cobertura de código no está implementada para proyectos netcore. El trabajo sobre este tema está en progreso, se incluirá como parte de las publicaciones posteriores a RTW.
Estoy usando Visual Studio Enterprise 2017 para desarrollar mis proyectos .net core.
Mi solución también tiene algunos proyectos de prueba unitaria y quiero ver mi cobertura actual del Código.
Cuando hice clic en Prueba -> Analizar cobertura de código -> Todas las pruebas. Todas mis pruebas de unidad se ejecutaron, pero en los Resultados de cobertura de código solo se informó la cobertura de código para mis proyectos de prueba de unidad, lo que no tiene ningún sentido para mí.
Pregunta 1 : ¿Ustedes experimentan el mismo problema conmigo? ¿Alguna solución para esto? También necesito configurar la definición de compilación en VSTS para reportar la cobertura del código.
Pregunta 2 : También cuando hice clic derecho para depurar 1 de mi prueba de unidad. Ejecuta TODAS mis pruebas unitarias. ¿Es este un error en VS2017?
Update1: Encontré este tema: https://github.com/Microsoft/vstest/issues/597
Este problema se ha solucionado con la versión 15.3:
https://github.com/Microsoft/vstest-docs/blob/master/docs/analyze.md#coverage
La respuesta de JDC me ayudó a incluir mis proyectos reales, pero no pude deshacerme de los proyectos de prueba en el informe de cobertura. Lo logré agregando un "CodeCoverage.runsettings" en mi proyecto de prueba XUnit con el siguiente contenido:
<?xml version="1.0" encoding="utf-8"?>
<!-- File name extension must be .runsettings -->
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Exclude>
<ModulePath>.*/.Tests.dll$</ModulePath>
<!-- Add more ModulePath nodes here. -->
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
La parte importante aquí es excluir el proyecto de prueba en la sección ModulePaths.
Parece que todavía están trabajando en los bits de infraestructura (recopiladores de datos) antes de liberarlos. Se supone que están cerca.
Puedes probar dotCover desde Jetbrains. https://www.jetbrains.com/dotcover/features/
dotCover es una herramienta de prueba de unidades y cobertura de código .NET que funciona directamente en Visual Studio, le ayuda a saber en qué medida se cubre su código con las pruebas unitarias, proporciona excelentes maneras de visualizar la cobertura del código y está lista para la integración continua. dotCover calcula e informa la cobertura del código de nivel de estado de cuenta en aplicaciones dirigidas a .NET Framework, Silverlight y .NET Core.
Funciona bien con .NET Core y puede mostrar cobertura de código.
Admite marcos de prueba de unidades múltiples, a saber, MSTest, NUnit, xUnit (todo listo para usar) y MSpec (a través de un complemento).
Incluso con la versión "fija" tuve problemas (solo pude ver la cobertura del código para los proyectos de prueba, no los proyectos reales que estaba probando). Para solucionar el problema, <DebugType>Full</DebugType>
el <DebugType>Full</DebugType>
del proyecto de prueba.
Entonces, como resumen:
Agregue el paquete Microsoft.CodeCoverage (1.0.3) a su proyecto de prueba.
Agregue la
<DebugType>Full</DebugType>
en el archivo .csproj en los proyectos que deseamos ver los valores de cobertura de código (dentro de<PropertyGroup>
como se explica en el enlace vstest github ).- Ejecutar pruebas unitarias.
- En el "Explorador de pruebas" seleccione las pruebas unitarias aprobadas, haga clic con el botón derecho -> "Analizar la cobertura de código para las pruebas seleccionadas".
- Debería ver el código de cobertura para sus montajes.
Mi configuración (¿Configuración mínima?)
- xunit (2.3.1)
- xunit.runner.visualstudio (2.3.1)
- Microsoft.NET.Test.Sdk (15.3.0)
- Microsoft.CodeCoverage (1.0.3)
- Visual Studio Enterprise 2017 (15.4.1)