Unité .NET Test des paquets?

Revenir dans un peu plus. NET après quelques années de ne pas l'utiliser à temps plein, et se demandant ce que les bons paquets de tests unitaires sont de nos jours.

Je connais NUnit (il y a quelques années), et j'ai joué brièvement avec IronRuby, dans le but d'obtenir quelque chose comme rspec, mais je ne connais pas grand-chose de plus.

Je me rends compte que je pourrais Google pour cela et l'appeler un jour mais je crois que je suis susceptible d'obtenir une réponse meilleure et plus éclairée de poser une question ici :-)

Suggestions?

0
wow, une question incroyablement utile avec beaucoup de upvotes qui n'a pas été "fermé comme non constructif" ... la police de SO amusant doit s'être endormi sur leur quart de travail
ajouté l'auteur Jonah, source

11 Réponses

xUnit.net semble offrir une approche légèrement différente de N / MB / MS / Unit, ce qui est intéressant.

Dans ma recherche d'une solution de type rspec (parce que j'AIME la rspec), je suis tombé sur NSpec , qui semble un peu verbeux, mais combiné avec l'extension Extensions NSpec pour utiliser C# 3 méthodes d'extension, ça a l'air plutôt sympa.

0
ajouté
Vous pouvez regarder ce NSpec ( nspec.org ). C'est presque identique à RSpec.
ajouté l'auteur Amir, source

J'aime MbUnit , er, Gallio . Le plus important pour moi est d'avoir un bon support d'outils dans Visual Studio. Pour cela j'utilise Resharper , qui a un MbUnit test runner . Beaucoup de gens semblent aimer TestDriven.NET en tant que coureur de test.

0
ajouté

Il y en a tellement que c'est fou. C'est fou, je suppose.

  • Pour les types conservateurs (moi), NUnit est toujours disponible et toujours plus que capable.
  • Pour les types Microsoft, MSTest est adéquat, mais lent et maladroit comparé à Nunit. Il manque également de couverture de code sans payer les gros sous pour les versions onéreuses de Visual Studio.
  • Il y a aussi MbUnit . C'est comme NUnit, mais avec des fonctionnalités intéressantes comme RowTest (exécuter le même test avec des paramètres différents) et Rollback (remettre la base de données comme vous l'avez trouvé après un test)
  • Et enfin, xUnit.net est l'option à la mode avec une certaine attitude
  • Oh, et TestDriven.NET vous donnera l'intégration IDE pour Nunit et MBunit

Je suis sûr qu'ils vont tous bien. Je détournerais MSTest cependant, à moins que vous appréciez juste la commodité d'avoir tout dans un IDE hors de la boîte.

Scott Hanselman has a podcast on this very topic.

0
ajouté
En effet, NUnit 2.5 a des fonctionnalités RowTest via l'attribut [TestCase].
ajouté l'auteur Richard Szalay, source
+1, note NUnit 2.5 a les fonctionnalités intéressantes de RowTest, plus le test combinatoire des arguments, etc.
ajouté l'auteur user7116, source
La différence entre MSTest et NUnit n'est pas si grande si vous me le demandez. Il se résume principalement à la syntaxe préférée et si vous utilisez TesteDriven.Net, qui prend également en charge MSTest, la performance est à peu près la même.
ajouté l'auteur Kjetil Klaussen, source

J'avais l'habitude d'utiliser NUnit, mais je suis passé à MbUnit car il a plus de fonctionnalités. J'aime RowTest. Il vous permet de paramétrer vos tests. NUnit a cependant un peu plus de support d'outils. J'utilise ReSharper pour exécuter des tests MbUnit. J'ai eu des problèmes avec TestDriven.NET exécutant mes méthodes SetUp pour MbUnit.

0
ajouté

J'aime TestDriven.NET (même si j'utilise ReSharper) et je suis assez content de < un href = "http://www.codeplex.com/xunit" rel = "nofollow noreferrer"> XUnit.net . Il utilise des faits au lieu de tests que beaucoup de gens n'aiment pas mais j'aime la différence de terminologie. Il est utile de penser à une collection de faits automatiquement prouvables sur votre logiciel et de voir lesquels vous violez quand vous faites un changement.

Sachez que Visual Studio 2008 Professional (et versions ultérieures) est désormais livré avec les tests unitaires intégrés (il était disponible uniquement avec les Team System Editions) et peut convenir à vos besoins.

0
ajouté

Stick à NUnit. N'allez pas près de MSTest.

NUnit + ReSharper est une joie absolue de travailler avec.

0
ajouté
J'ai également rencontré divers bugs avec le test MS "runner". Fondamentalement, VS le laisse fonctionner en arrière-plan et dans certaines circonstances les tests que vous avez effectués il y a 10 minutes peuvent interférer avec celui que vous êtes sur le point de lancer en ce moment :-(
ajouté l'auteur Orion Edwards, source
Salut Kjetil. C'est principalement pour trois raisons. 1. Les méta-données créées par les tests MS. Pourquoi? Réfléchir comme NUnit. 2. Le coureur d'essai est horrible. 3. NUnit fait tout mieux - pourquoi changer. Je l'ai fait pendant un moment, mais a ensuite changé.
ajouté l'auteur Iain Holder, source
Pourquoi devriez-vous vous éloigner de MSTest? J'apprécierais que vous ayez pris la peine de partager POURQUOI vous voulez vous en éloigner. Et R # fonctionne aussi avec MSTest (avec le plugin Gallio).
ajouté l'auteur Kjetil Klaussen, source

C'est vraiment une opinion personnelle de ma part (je suppose que c'est redondant puisque c'est un forum). NUnit, MSTest, ect tout fait joli mutch la même chose. Cependant, je trouve NMock indispensable.

Le NMock ou tout autre logiciel de simulation n'est pas un test unitaire, mais il est tellement plus facile de faire des tests unitaires qu'il peut aussi bien l'être.

0
ajouté

Nous utilisons NUnit et MBUnit ici. Nous utilisons TestDriven.NET pour exécuter les tests unitaires depuis Visual Studio. Nous utilisons l'excellent RhinoMocks comme un cadre factice.

0
ajouté

I have made a small example of testing a .net lib using ironRuby: http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx

0
ajouté
Merci pour ça. En fait, j'ai beaucoup joué avec ça moi-même. Malheureusement, IronRuby n'est pas encore capable d'exécuter full rspec, seulement mspec, qui est beaucoup plus réduit. Même ainsi, c'est plus agréable que nunit / etc :-)
ajouté l'auteur Orion Edwards, source

J'avais l'habitude d'utiliser NUnit, mais maintenant j'ai tendance à utiliser MbUnit, pour deux fonctionnalités clés: 1. La fonctionnalité RowTest vous permet d'exécuter facilement le même test sur différents ensembles de paramètres, ce qui est important si vous voulez vraiment une couverture complète. 2. La fonction de restauration vous permet d'exécuter des tests sur votre base de données tout en annulant les modifications après chaque test, ce qui vous permet de conserver votre base de données exactement dans le même état à chaque fois. Et c'est aussi simple que d'ajouter l'attribut [Rollback].

Un autre aspect intéressant de MbUnit est que sa syntaxe est presque identique à celle de NUnit, donc si vous avez déjà un banc d'essai complet sous NUnit, vous pouvez simplement changer les références sans avoir besoin de changer (beaucoup?) De code.

0
ajouté

C'est une vieille question mais vous pourriez trouver intéressant que Gallio v3.1 supporte désormais RSpec via IronRuby.

0
ajouté