7
votes

Nunit exécute chaque test deux fois

Je rencontre un problème d'exécution de mes tests via Nunit. Je ne sais pas pourquoi mais chaque test fonctionne deux fois. Le point est que sur un autre ordinateur portable, il ne fonctionne normalement qu'une seule fois.

Avez-vous le même problème et savez comment y faire face?


0 commentaires

6 Réponses :


0
votes

Le problème se pose généralement lorsque vous chargez un conteneur de test (.dll) plusieurs fois.

Ceci peut se produire si vous chargez les conteneurs de test à partir d'un flodeur racine qui présente à la fois des dossiers Bin et Obj à l'intérieur, ce qui est une configuration typique de projets Visual Studio.

Essayez de limiter votre récipient de test en cours de chargement dans les dossiers des bacs.


2 commentaires

En fait, ça ne marche pas. Et pourquoi sur les autres ordinateurs portables, il fonctionne correctement mais sur celui-ci non.


Avez-vous recherché les fichiers DLL à l'intérieur des dossiers de solution? Vous pouvez également construire pour deux configurations différentes, telles que BIN \ version + BIN \ DEBUG




0
votes

Le fonctionnement du test peut également être dupliqué est lorsque des tests séquentiels ont accidentellement les mêmes paramètres de test.

 [Test, Sequential]
            public void Integr_MController_DeleteGet_ReturnsViewAndModel(
 [Values("Do@london.com", "Do@london.com")] string firstEmail,


 [Values("Zyg@london.com", "Zyg@london.com")] HTTPstring updatedEmail) {test code}


0 commentaires

2
votes

J'ai eu un problème similaire dans lequel l'exécution du test avec le coureur Visual Studio Nunit3, le test ne fonctionnerait qu'une seule fois, mais lors de l'exécution de la ligne de commande avec Nunit3-Command.exe, le test fonctionnerait deux fois. J'ai passé beaucoup trop envie à poursuivre cela. J'ai remarqué que le coureur de ligne de commande rapportait que 2 tests ont été exécutés et sont arrivés à la conclusion qu'il s'agissait d'un problème dans la DLL. Cela peut sembler fou, mais j'ai copié tout mon code de test en une nouvelle classe, supprimé l'ancien, compilé et le test fonctionne maintenant une fois dans les deux scénarios.


1 commentaires

Cela a fonctionné pour moi. Le projet était .NET V4.5 et était auparavant un projet MSTEST (avec l'icône Mstest dans VS). J'ai parcouru le code source dans une nouvelle bibliothèque de classe V4.7. Ceci a fait l'affaire.



2
votes

Dans mon cas, il disposait d'une classe de base et d'une classe dérivée à la fois l'attribut TestFixture. Tous les tests de la classe dérivée fonctionnaient deux fois.

corrigé par l'attribut uniquement sur la classe de base.


0 commentaires

0
votes

Si vous mettrez le * .dll deux fois, le test obtient double exécuté.

vu sur Nunit.3.10.1, Nunit3-console 3.9.0

Exemple:

Nunit3-console myTestdll.dll --Test = myNamesPace.test myTestdll.dll ** --Result = myResult.xml


0 commentaires