2012-04-24 1 views
4

Je voudrais que TeamCity exécute mes tests mSpec et fasse un rapport sur le code couvert par les tests.Comment est-ce que je peux échouer une construction de TeamCity si dotCover ne rapporte pas un résultat assez haut?

Je voudrais aussi TeamCity à signaler qu'une construction a échoué si la couverture de code dans certains espaces de noms ne répond pas à un seuil (par exemple MyProduct.ImportantStuff doit être 100%, mais MyProduct.LegacyStuff dois être [23%ou tout ce qu'il est actuellement pour s'assurer que nous n'ajoutons pas de nouvelles choses sans couvrir les tests]

J'ai d'abord regardé dotCover comme il est intégré dans TeamCity.J'ai depuis regardé OpenCover comme je ne pouvais pas obtenir TC à Échec de la construction sur faible couverture

J'ai l'OpenCover qui fonctionne mais j'aimerais quand même savoir (comme je suis sûr que beaucoup de gens le feraient) comment faire pour que TC échoue une build si la couverture de code est trop faible.

Répondre

5

Utilisez-vous le dernier TeamCity, c'est-à-dire la version 7?

Lors de la mise en place d'une configuration de construction, vous pouvez spécifier:

enter image description here

Il y a beaucoup plus d'options dans le menu déroulant lié à la couverture de code. Vous pouvez également forcer l'échec de votre build si vous utilisez un autre outil de couverture de code. Par exemple, vous pouvez l'écho d'une ligne à la console qui sera ensuite repris par TeamCity:

##teamcity[buildStatus status='FAILURE' text='something failed'] 

voir documentation officielle sur ce here

+0

Salut @Wal. Oui, en utilisant la dernière version. Je cherchais spécifiquement un moyen d'échouer si certaines assemblées tombaient en dessous d'un certain pourcentage. Cela ne semble pas réalisable avec les choses intégrées. Je peux atteindre les résultats souhaités en utilisant OpenCover, puis en exécutant ReportGenerator, puis en effectuant quelques requêtes XPath dans le XML de résumé. –

+0

ok, et alors vous pouvez émettre (à la console) '## teamcity [buildStatus status = 'FAILURE'' pour envoyer le message à TC. Suivez ce lien dans mon message pour voir la syntaxe complète – wal

+0

Ceci est une bonne solution de contournement pour quand TC ignore les codes d'erreur et dit joyeusement "Processus quitté avec le code 0". Magique! – starmandeluxe

Questions connexes