web-dev-qa-db-fra.com

Visual Studio 2013 MSTest vs NUnit

Mon entreprise met à niveau notre Visual Studio 2012 à 2013 Premium. Nous cherchons également à automatiser nos tests avec Visual Studio Team Services .

J'ai lu quelques articles et articles de MSTest vs nUnit dans le passé, mais la plupart d'entre eux compare l'ancienne version de MSTest. En outre, nUnit a reçu de nombreuses critiques favorables par rapport à MSTest.

Ma question est la suivante: compte tenu de l'engagement de Microsoft envers ALM, les pratiques Agiles et les nouveaux éléments ajoutés à VS2013 Premium et Visual Studio Team Services pour faciliter et encourager les tests automatisés, quelle est la différence entre MSTest et nUnit?

Quelles autres considérations dois-je prendre en compte avant de prendre une décision sur un cadre de test à utiliser?

67
Null Reference

MSTest n'a pas beaucoup changé depuis son introduction, de sorte que les anciens postes de comparaison sont toujours valables. L’accent mis par Microsoft sur ALM vise principalement l’outillage et les produits de serveur, mais la structure de test fondamentale n’a pas beaucoup changé.

Il est également intéressant de noter que MSTest et sa stratégie ALM s’appliquent à de nombreux styles de tests automatisés, notamment les tests d’intégration, les tests système, les tests de performance, etc. assez mal adapté aux tests unitaires, car il est trop lourd pour travailler.

Bien que NUnit soit meilleur, je ne le recommanderais pas non plus. Cela aussi n'a pas beaucoup changé depuis des années et le modèle d'extensibilité est franchement un gâchis.

Au lieu de cela, je recommanderais xUnit.net . Bien que ce ne soit pas parfait non plus, c'est actuellement la meilleure alternative grand public sur .NET. Il y a plusieurs raisons pour lesquelles xUnit.net est meilleur que MSTest .

57
Mark Seemann

MSTest Vs NUnit:

  1. MSTest est intégré à VS, il sera donc facile à utiliser. NUnit nécessitera des outils tiers (certains sont gratuits, d'autres sont payants).
  2. VS vous donnera une couverture de code dans MSTest. NUnit nécessite DotCover (outil payant).
  3. MSTest a la possibilité d'exécuter vos tests en parallèle s'ils ne dépendent pas les uns des autres. Ce n'est pas une fonctionnalité fournie par NUnit.
  4. NUNit a TestCaseSourceAttribute qui vous aide à réaliser des scénarios de test paramétrés, mais sous MSTest, vous aurez besoin de DataSourceAttribute qui serait dans un fichier xml et qui sera difficile à gérer si vous avez une méthode complexe en logique.
  5. NUnit est plus rapide que MSTest.

Globalement, les deux cadres sont bons à utiliser, mais je suggérerais d’utiliser NUnit.

36
arpitbakshi