J'utilise Visual Studio (parfois resharper) pour exécuter mon test unitaire.
J'ai entendu parler de NUnit, mais je ne sais pas grand chose à ce sujet ...
Devrais-je m'en soucier? Peut-il offrir quelque chose de mieux que Visual Studio?
Devrais-je utiliser NUnit et pourquoi?
NUnit présente peu d'avantages par rapport à MS-Test
Assert.AreEqual(expected, actual)
vs Assert.That(actual, Is.EqualTo(expected))
[TestCase]
! NUnit permet d'effectuer des tests paramétrés.De mon point de vue actuel (après 8 mois de développement avec environ 10 développeurs en moyenne), je conseillerais contre d'utiliser MSTest pour les raisons suivantes
En d'autres termes, si j'avais à prendre une nouvelle décision il y a 8 mois, je prendrais probablement NUnit. Je n'ai peut-être pas le rapport de résultats de test intégré, mais les développeurs auraient une expérience de test plus transparente.
Voici mon expérience avec MS Test
Ajout: Nous avons encore quelques tests, nous ne pouvons même pas dire combien. Il est impossible de les exécuter tous à partir de Visual Studio, à cause de OutOfMemoryExceptions et d'autres problèmes d'instabilité. Nous exécutons les tests à partir de scripts. Il serait facile de visualiser les résultats des tests dans Visual Studio, mais lorsque la solution est ouverte, VS se bloque (à chaque fois). Nous devons donc rechercher les tests qui échouent en utilisant la recherche de texte. Il n'y a plus aucun avantage d'un outil intégré.
Une autre mise à jour : Nous utilisons VS 2013 maintenant. Beaucoup de choses ont changé. Ils ont réécrit le testeur de test MS Test pour la troisième fois depuis le début. Cela a provoqué de nombreux changements, mais aucune des deux nouvelles versions ne faisait mieux. Nous sommes heureux de ne pas avoir utilisé les fonctionnalités sophistiquées de MS Test, car elles ne sont plus toutes prises en charge. C'est vraiment dommage. Nous utilisons toujours des scripts pour créer et exécuter tous les tests unitaires, car il est plus pratique. Il a fallu quelques minutes à Visual Studio pour commencer à exécuter des tests (la durée est mesurée après la compilation jusqu'au début du premier test). Ils le corrigent probablement avec une mise à jour et cela pourrait être un problème spécifique de notre projet. Cependant, Resharper est beaucoup plus rapide lorsque vous exécutez les mêmes tests.
Conclusion : Au moins en combinaison avec Resharper, MS Test est utile. Et j'espère qu'ils découvriront enfin comment le programme d'exécution de test devrait être écrit et qu'ils ne procéderont pas à ce type de modifications lorsque nous mettrons à jour Visual Studio.
NUnit peut être utilisé en combinaison avec Visual Studio. C'est un cadre et non un programme séparé. Vous pouvez donc voir si cela vous convient :).
"Après l’installation du plugin, vous trouverez un nouveau sous-menu dans le menu Outils."
Voir http://nunitit.codeplex.com/ pour plus d'informations sur son importation.
En outre, beaucoup peut être trouvé en utilisant la recherche de SO. Cette rubrique répertorie les avantages de NUnit par rapport aux tests standard MS, par exemple.
Le plus gros avantage de MS-Test par rapport à NUnit: MS-Test peut générer des objets fictifs à l'aide de Reflection. Je l'ai trouvé très utile
NUnit fonctionne avec l'édition standard de VS.
NUnit est un framework de test unitaire, qui est également supporté par resharper. Je pense que vous utilisez le framework de tests unitaires de Microsoft, alors NUnit n’est qu’une alternative au produit Microsoft;)
Voici le lien vers la page d'accueil de NUnit: http://nunit.org/index.php
Je ne suis pas sûr des autres, mais NUnit fournit une interface graphique et une console Nice pour exécuter vos tests unitaires. Vous pouvez également générer un rapport du résultat de l'exécution du test NUnit, qui donnerait le détail de l'échec ou de la réussite du test, ainsi prendre pour votre test unitaire
Dans NUnit , les tests ne sont pas exécutés en parallèle. Au contraire, il semble que tous les tests s’exécutent sur un seul thread. Dans MSTest, chaque test est instancié sur un thread séparé. Les analyses sont donc entrelacées. Par conséquent, si le test A dépend du test B pour réussir, il échouera probablement car le test B commencera probablement en même temps que le test A en cours.