visual-studio - ejemplo - unit test visual studio
Cómo excluir Proyectos con nombres que terminan en ".Test" de mi análisis de cobertura de código en VS2012 Unit Tests (2)
Hay una conexión con el problema del período tal como se mencionó here . Si cambia la sección de exclusión a este
<ModulePath>.*tests.dll</ModulePath>
<ModulePath>.*Tests.dll</ModulePath>
o esto
<ModulePath>.*/.tests/..*</ModulePath>
<ModulePath>.*/.Tests/..*</ModulePath>
Funcionará
Mi solución está configurada con proyectos llamados "NombreProyecto" con "NombreProyecto". Pruebas que contienen mis pruebas unitarias. Me gustaría excluir los proyectos de prueba del análisis de cobertura de código bajo VS 2012 (MS Test) y lo he logrado exitosamente al agregar el atributo ExcludeFromCodeCoverage
a cada clase de prueba como se describe here .
A medida que la cantidad de clases de prueba aumenta, sería bueno excluir todo el conjunto de pruebas. Quiero utilizar el archivo .runsettings también descrito en ese enlace de MSDN, pero no parece tener suerte.
Aquí está mi archivo .runsettings:
<?xml version="1.0" encoding="utf-8"?>
<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.*</ModulePath>
<ModulePath>.*Tests.*</ModulePath>>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Esto genera resultados vacíos generados para Cobertura de código, si hago un comentario sobre todo el bloque <Exclude>
obtengo cobertura de código en todos los proyectos de la solución, incluidas las pruebas (como esperaba, solo quería asegurarme de que la adición del archivo runSettings no fuera no está causando problemas en sí mismo).
He intentado agregar:
<Include>
<ModulePath>.*/.dll$</ModulePath>
<ModulePath>.*/.exe$</ModulePath>
</Include>
Pero de nuevo, obtengo resultados vacíos. Tenía la impresión de que un bloque Incluir vacío (o inexistente) incluirá todo por defecto a menos que coincida con el bloque Excluir, por lo que no creo que esto sea estrictamente necesario.
¿Alguien puede señalarme en la dirección correcta? Veo a partir de esta otra pregunta que no estoy solo al tratar de excluir las pruebas, pero me gustaría hacerlo a nivel de ensamblado y here parece sugerir que puedo.
Puede excluirlo excluyendo el dll del proyecto o también utilizando el nombre del proyecto. P.ej -
<ModulePaths>
<Exclude>
<ModulePath>Fabrikam.Math.UnitTest.dll</ModulePath>
<!-- You can add more ModulePath nodes here. -->
</Exclude>
</ModulePaths>
Este enlace de MSDN es útil para eso.