Comment NUnit pour C # se compare-t-il à la fonction de test unitaire intégrée à Visual Studio

12

Je dois travailler en équipe pour développer une application de bureau de taille moyenne développée à l'aide de C # .NET. Avant cela, je n'ai pas appliqué les tests unitaires et le développement piloté par les tests. Je suis conscient qu'il existe de nombreux outils et frameworks pour les tests unitaires des applications C #. Pour l'instant, je connais Nunit et le service de tests unitaires intégrés à Visual Studio.

J'aimerais savoir comment les deux se comparent?

Shamim Hafiz
la source

Réponses:

14

Il y a certainement un certain chevauchement entre les deux. NUnit est le prédécesseur, et par conséquent plus mature. Le framework de test unitaire C # est plus récent, mais intégré à Visual Studio.

Je viens du monde Java où JUnit est roi (il y en a d'autres, mais aucun n'est aussi populaire), et NUnit 2.5.x correspond vraiment à la façon dont JUnit 4 fonctionne. En fait, cela fonctionne beaucoup mieux que son homologue Java.

En ce qui concerne la définition du test, je suis favorable à NUnit. Bien sûr, MS Test a des attributs similaires (mais différents) que vous appliquez à vos classes, mais je pense qu'il manque certaines fonctionnalités qui peuvent vous faire économiser du travail sur certains types de tests. Vous voudrez peut-être consulter une discussion similaire sur StackOverflow .

J'aime le nouveau modèle d'assertion intégré à NUnit (il utilise les assertions de style Hamcrest ) car ils sont à la fois faciles à lire et facilement extensibles.

  • NUnit aura un meilleur support tiers, MS Test aura une meilleure intégration (prête à l'emploi).
  • NUnit aura une meilleure flexibilité et extensibilité, MS Test souffrira dans ce domaine.
  • Les deux exécutent des tests unitaires et vérifient vos résultats, les deux fonctionneront pour TDD.
Berin Loritsch
la source
3

La seule vraie différence que j'ai remarquée lorsque j'ai dû créer un script de construction à exécuter sur un serveur MSBUILD dédié sous forme TFS, configurer nUnit et obtenir des résultats de test nUnit était une vraie douleur, le configurer et obtenir les résultats pour MSTest était un jeu d'enfant.

Il y avait aussi un problème avec Resharper où les tests MSTest ne pouvaient pas être exécutés à partir du lanceur de test. Dans les versions plus récentes, cela est corrigé, donc si vous avez une ancienne version de Resharper, cela pourrait toujours être un problème.

Cet article de Roy Oshereve est toujours un bon aperçu.

ps: Supprimé mon autre réponse, n'a pas été utile du tout, mes excuses pour celle-là.

KeesDijk
la source