Comment NUnit (et MSTest) gèrent-ils les tests qui modifient les variables statiques / partagées?

StackOverflow https://stackoverflow.com/questions/154180

Question

J'ai un code qui utilise le modèle de passerelle partagée pour implémenter une inversion du conteneur de contrôle. J'ai plusieurs centaines de tests unitaires NUnit qui exercent le code qui utilise ce code IOC. Ils fonctionnent tous (sur ma machine!), Mais je crains que ces tests échouent sous charge. Je semble me souvenir que NUnit (et MSTest) tente d’exécuter des tests en parallèle sur plusieurs threads (ce qui déclencherait certainement des conditions de concurrence sur la passerelle statique / partagée), mais je ne trouve aucune documentation indiquant ce qui se passe réellement. Mon expérience est que NUnit semble exécuter les tests séquentiellement. Ma question est la suivante: NUnit (ou MSTest) exécute-t-il des tests unitaires en parallèle? Si oui, dans quelles conditions? Et puis-je désactiver cette option via une sorte d’option de configuration?

Était-ce utile?

La solution

Mise à jour:

Visual Studio 2010 introduit la possibilité d'exécuter des tests en parallèle.

Voici un article étape par étape sur la procédure à suivre pour activer cette fonctionnalité.

MsTest:
Ainsi, selon David Williamson, de Microsoft Visual Studio Team, sur cet article dans les forums MSDN:

  

Les tests ne fonctionnent absolument PAS   parallèle lorsqu'il est exécuté dans VS ou via   mstest.exe. S'ils sont courus dans un   Charger le test par VS alors c'est un   histoire différente. Exécution de base,   Cependant, il est toujours en série.

De plus, les tests exécutés à l'aide de MsTest sont exécutés à l'aide d'un thread différent, afin de vous assurer que vous avez une table rase pour chaque test. Il n’existe aucun moyen de désactiver ce comportement.

NUnit:
NUnit exécute tous les tests sur le même thread.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top