48 votes

Visual Studio 2012 MSTest vs NUnit pour et contre

Nous avons à décider quelle technologie utiliser pour nos tests unitaires. Actuellement, nous utilisons Visual Studio 2010 et de ne pas heureux avec MSTest qui est venu avec que. Il est bogué, pauvre en déploiement (E. g la configuration de test répertoire de sortie n'est pas reconnu correctement), et ont plusieurs problèmes lorsque vous essayez de montages d'essai en 32 bits et les versions 64 bits. Pour rendre les choses pires MSTest n'a pas une bonne adaptation d'impédance avec notre système de build Jenkins. Nous avons donc pensé à se mettre à l'NUnit. Toutefois, aucun membre de notre équipe a une bonne exposition à NUnit. Aussi,nous allons bientôt emménager dans Visual Studio 2012.

J'ai besoin de savoir les avantages et les inconvénients de Visual Studio 2012 MSTest vs Nunit dernière version. Puisque la plupart des articles sur un débordement de pile sont liées à d'anciennes versions de VS ils ne sont pas liés à nous. Je suppose que Microsoft a amélioré MSTest beaucoup depuis 2010. Veuillez fournir un estimateur sans biais de la comparaison avec les détails techniques, les problèmes que vous avez rencontrés dans les deux technologies (des versions plus récentes uniquement)

27voto

Matt Esch Points 7513

Je suis en utilisant à la fois MSTest et NUnit pour le moment. À mon humble avis NUnit est toujours une meilleure solution. Si vous avez Visual Studio Premium 2012 edition puis, c'est vraiment très agréable, sauf pour le fait que vous ne pouvez pas semblent groupe ensemble de tests. J'aime le fait qu'il est intégré à Visual Studio, mais le manque de groupement et la possibilité d'exécuter un sous-ensemble de tests sans sélectionnant manuellement est un énorme problème.

L'analyse de la couverture est également très soigné en Prime. C'est rapide et vous offre tout ce dont vous avez besoin rapidement. C'est une fonctionnalité Premium.

Puisqu'il y a encore manquait de fonctionnalités dans MSTest (même les fonctionnalités supprimées depuis vs2010), je voudrais encore vous recommandons d'utiliser NUnit pour les tests unitaires. Les avantages comprennent un test de regroupement par espace de noms, la possibilité d'ajouter des cas de test annotations (exécutant le même test plusieurs fois avec des paramètres différents) et il fonctionne bien avec Opencover et Générateur de Rapport pour l'analyse de la couverture. La principale cité con, c'est qu'il n'est pas intégrée comme MSTest, donc ça dépend vraiment de la façon dont beaucoup de questions à vous de savoir si oui ou non c'est un con.

10voto

Terje Sandstrøm Points 171

@Biranchi: Il n'a plus d'importance qui unit test framework que vous utilisez dans Visual Studio 2012 (et plus). Voir mon article sur le blog ici, la suite de celui auquel vous vous référez. http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/20/part-2-using-traits-with-different-test-frameworks-in-the-unit-test-explorer.aspx

Vous pouvez même mélanger et assortir des tests à partir de différents cadres, vous pouvez même le faire au niveau de la méthode !!
Cela signifie que vous pouvez même déplacer le code hérité de l'un à l'autre avec pas de mauvais effets secondaires.

Voir aussi cette pour comment utiliser Nuget pour installer le NUnit adaptateur dans la solution, de libérer le développeur de l'installation elle-même. http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using-the-tfs-build-and-the-new-nuget-adapter-approach.aspx

@Sriwantha: MSTest est plus simple cadre de NUnit. NUnit (et aussi XUnit) vous donner plus de flexibilité, ce qui conduit également à moins de code à écrire. Un exemple: Si vous êtes à l'aide de catégories (et vous devriez), MSTest nécessitent une catégorie pour décorer chaque méthode. NUnit vous permet de décorer la classe - qui entrera en vigueur pour toutes les méthodes de cette classe. NUnit permettent également de vous utilisez fortement typé catégories

public class Integration : Category {}

Cela est suffisant pour déclarer une catégorie que vous pouvez utiliser à la place de

Category("Integration");

où tu risques d'erreurs d'orthographe.

NUnit a beaucoup plus de soutien pour les données piloté par les tests. NUnit a aussi un support pour les théories

pour n'en nommer que quelques-unes.

1voto

Martin Noreke Points 28

VS2012 autorise la catégorisation des tests en groupes si vous avez "Update 1" ou une version ultérieure: http://msdn.microsoft.com/en-us/library/hh270865.aspx#BKMK_Grouping_and_filtering_the_test_list

1voto

Biranchi Panda Points 11

Avez-vous examiné la fonctionnalité Traits de VS? http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using- traits-in-the-unit-test-explorer.aspx

Le regroupement est bien meilleur dans mstest (mise à jour 1 de 2012) par rapport à la nonunité.

0voto

Garry Points 695

Voici un blog qui répertorie quelques différences entre MSTest et NUnit http://blogs.msdn.com/nnaderi/archive/2007/02/01/mstest-vs-nunit-frameworks.aspx

Et ce lien compare ici encore plus de frameworks de tests unitaires http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X