J'utilise MSTest Je veux définir la même catégorie de test pour toutes les méthodes de la classe de test en une seule fois, sans définir l'attribut TestCategory pour chaque méthode individuellement. Comment cela peut-il être fait ?
Le moyen le plus pratique et le plus évident serait de définir l'attribut TestCategory sur la classe, mais il ne peut être appliqué qu'aux méthodes.
L'objectif final est de sauter les tests d'intégration lors de l'exécution des tests sur le check-in TFS.
3 votes
Intéressant. Je ne pense pas qu'il soit possible de marquer toutes les méthodes de la classe avec un attribut en travaillant avec les tests TFS. TFS comprend TestCategory et Priority et ces attributs ne concernent que les méthodes. Vous pouvez déplacer les tests d'intégration vers un projet séparé et indiquer à TFS de ne pas les exécuter.
2 votes
Pourriez-vous séparer vos tests unitaires et d'intégration en deux assemblages différents et configurer votre construction en conséquence ?
0 votes
Eh bien, nous avons des dizaines de bibliothèques et chacune d'entre elles a une bibliothèque de tests correspondante qui peut contenir à la fois des tests unitaires et des tests d'intégration. Diviser chacune d'entre elles en une bibliothèque pour les tests unitaires et une bibliothèque pour les tests d'intégration est possible, mais ne semble pas être l'approche la plus élégante.
2 votes
Le plus proche que vous puissiez obtenir est de définir les catégories comme des chaînes const, mais vous devez toujours changer tous les attributs manuellement, par exemple :
[TestCategory(INTEGRATION)]
1 votes
Si vous utilisez un framework AOP tel que PostSharp, vous pourriez l'exploiter pour injecter les attributs que vous voulez dans chaque méthode (peut-être regarder un de vos attributs au niveau de la classe et le traduire en TestCategory au niveau de la méthode). J'ai déjà fait cela pour l'attribut Description et cela a bien fonctionné (bien que j'utilisais NUnit).