56 votes

Comment puis-je exclure les types et les méthodes de couverts par dotCover dans TeamCity?

J'en ai déjà un de C# 4 projet qui, je l'ai vérifié la couverture de test en utilisant TestDriven.Net et Visual Studio fonctionnalité de couverture, c'est à dire un Test Avec de l' -> Couverture dans le menu contextuel.

Le projet contient un code que je ne veux pas couverts, et je l'ai résolu que par l'ajout de l' [ExcludeFromCodeCoverage] pour ceux des types et des méthodes.

Nous avons juste mis à niveau TeamCity à 6.0.3, et j'ai ajouté dotCover la couverture de la NUnit étape de génération.

J'ai réussi à enlever la couverture pour les assemblys externes tels que NHibernate dans la "section" Filtres (par énoncer explicitement les ensembles pour lesquels je veux de la couverture), mais je suis aux prises avec la façon d'exclure les types et les méthodes de couverts assemblées.

enter image description here

70voto

Anthony Mastrean Points 8582

Ok, Martin, j'ai tout compris! Il a seulement pris une heure de hasard la piquer à la syntaxe du filtre... lorsque la documentation dit d'ajouter un filtre comme ceci

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

Ils signifient vraiment ce... où rien en <> est remplacé entièrement par vous-même et rien d'autre est un littéral

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

Donc, le filtre que je voulais inclure une assemblée unique (à partir d'un tas de sous-ensembles) et ensuite d'exclure un certain nombre d'espaces de noms dans cette assemblée. J'ai écrit

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*

4voto

Anna Lear Points 13919

Jetez un oeil à la dotCover trucs Et Astuces page. Il semble que vous pouvez définir des exclusions dans la section Filtres, semblable à la façon dont vous exclu toute assemblées.

Disons que vous voulez ignorer une méthode appelée DoStuff contenue dans une classe MyStuff, ce qui est dans l' MyAwesomeAssembly bibliothèque. Ensuite, votre dotCover XML devrait ressembler à quelque chose comme ceci:

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

Avertissement: je n'utilise pas dotCover, donc je ne suis pas sûr à 100% si ce sera effectivement le travail.

0voto

stealf Points 1

C'est ce que le TeamCity docs dit sur les options de filtre:

Spécifier les assemblages de profil d'un par ligne en utilisant la syntaxe suivante: +:myassembly=;=;=*

Utilisation -:myassembly pour exclure un assemblage à partir de la couverture du code. Astérisque (*) est pris en charge ici.

0voto

Ruslan Isakiev Points 61


La réponse spécifié par Anthony décrit exactement comment il fonctionne.
Voici quelques liens relatifs à la TeamCity et dotCover intégration:

http://blogs.jetbrains.com/dotnet/2010/12/coverage-with-dotcover-teamcity-mstest-nunit-or-mspec
http://confluence.jetbrains.net/display/TCD65/JetBrains+dotCover

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X