¿Cómo excluyo tipos y métodos de ser cubiertos por dotCover en TeamCity?


Tengo un proyecto existente de C# 4 que he comprobado la cobertura de prueba mediante el uso de TestDriven.Net y la función de cobertura de Visual Studio, es decir, Probar Con - > Cobertura desde el menú contextual.

El proyecto contiene algún código que no quiero cubrir, y lo he resuelto agregando [ExcludeFromCodeCoverage] para esos tipos y métodos.

Acabamos de actualizar TeamCity a 6.0.3, y he añadido cobertura dotCover al paso de compilación de NUnit.

He logrado eliminar la cobertura para el externo ensamblados como NHibernate en la sección "Filtros" (al indicar explícitamente los ensamblados para los que quiero cobertura), pero estoy luchando con cómo excluir tipos y métodos de ensamblados cubiertos.

introduzca la descripción de la imagen aquí

Author: Dave Schweisguth, 2011-04-12

3 answers

De acuerdo, Martin, ¡lo descubrí! Solo tomó una hora de hurgar aleatoriamente en la sintaxis del filtro... cuando la documentación dice agregar un filtro como este

+:myassembly=*;type=*;method=***

Realmente quieren decir esto... donde cualquier cosa en <> es reemplazada completamente por usted y cualquier otra cosa es literal

+:<myassembly>;type=<filter>;method=<filter>

Entonces, el filtro que quería era incluir un solo ensamblado (de un montón de ensamblados) y luego excluir algunos espacios de nombres en ese ensamblado. Escribí

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*
 61
Author: Anthony Mastrean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-01 22:51:08

Echa un vistazo a la página dotCover Tips & Tricks. Parece que puede configurar exclusiones en la sección Filtros, de manera similar a como excluyó ensamblados enteros.

Digamos que desea ignorar un método llamado DoStuff contenido en una clase MyStuff, que está en la biblioteca MyAwesomeAssembly. Entonces tu XML dotCover debería ser algo como esto:

<Filters>
  <ExcludeFilters>
     <FilterEntry>
       <ModuleMask>MyAwesomeAssembly</ModuleMask>
       <ClassMask>MyStuff</ClassMask>
       <FunctionMask>DoStuff</FunctionMask>
     </FilterEntry>
  </ExcludeFilters>
</Filters>

Descargo de responsabilidad: No uso dotCover, por lo que no estoy 100% seguro de si esto realmente funcionará.

 2
Author: Adam Lear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 04:59:29

Esto es lo que dice la documentación de TeamCity sobre las opciones de filtro:

Especifique ensamblados para perfilar uno por línea usando la siguiente sintaxis:+: myassembly = ; type = ; method=*

Uso - : mi asamblea para excluir un ensamblado de la cobertura del código. Asterisk wildcard ( * ) es compatible aquí.

 0
Author: stealf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-06 12:57:53