2009-11-05 2 views
3

Je cherche à passer de NUnit à MbUnit pour mon framework de test unitaire car il a quelques fonctionnalités que j'aime, l'une d'entre elles étant l'attribut parallélisable. Si je marque les tests avec cet attribut, que se passe-t-il?MbUnit Tests parallélisables

i, toutes les variables d'instance sont-elles uniquement disponibles pour leur propre thread ou sont-elles partagées? ii, combien de tests seront exécutés en même temps? Est-ce que cela dépend du nombre de processeurs/cœurs? Raison pour poser la première question est que j'ai, en tant que test, simplement échangé le cadre Nunit pour le cadre MbUnit, et dans une classe de test particulière, les ensembles de tests ont tendance à échouer lorsqu'ils sont exécutés en parallèle. Ces tests utilisent des variables au niveau de la classe, puis sont configurés dans [SetUp].

+0

Je suis confus par l'instruction "Ces tests utilisent des variables au niveau de la classe, puis sont configurés dans [SetUp]". Pourquoi devriez-vous déclarer une variable au niveau de la classe dans la classe Test? Je ne pense pas, c'est comme ça que vous devriez écrire des tests (même si vous utilisez NUnit). – shahkalpesh

+0

Lorsque vos tests ont un code de configuration commun, cela supprime la duplication. Certains diront que l'ajout d'un appel de méthode au début de chaque test est plus clair, cependant. – GraemeF

Répondre

1

Les tests s'exécutent sur une seule instance de votre classe d'appareils de test, de sorte que les champs d'instance seront partagés.

Par défaut, le degré de parallélisme est égal au nombre de processeurs dont vous disposez, ou 2 au minimum. Vous pouvez utiliser l'attribut DegreeOfParallelism au niveau de l'assemblage pour le remplacer. Voir this blog post pour plus de détails et quelques exemples vous montrant comment utiliser les différents attributs.

Questions connexes