NUnit vs Visual Studio 2008 Projets de Test pour les Tests Unitaires?
Je vais être le démarrage d'un nouveau projet au travail et que vous souhaitez obtenir dans les tests unitaires. Nous serons à l'aide de VS 2008, C#, et la ASP.NET MVC choses. Je suis à la recherche à l'aide soit de NUnit ou de la construction dans les projets de test que VS2008 a, mais je suis ouvert à la recherche d'autres suggestions. Un système est-il mieux que l'autre ou peut-être plus facile à utiliser/comprendre que les autres? Je suis à la recherche pour obtenir ce projet a mis en place comme une sorte de "best practice" pour le développement de nos efforts pour aller de l'avant.
Merci pour toute l'aide et les suggestions!!
Vous devez vous connecter pour publier un commentaire.
Daok nommé pro de VS2008 projets de test, voici le pro de NUnit.
IDE, cela peut être utile si vous voulez
exécuter des tests sur un non MS serveur de build
comme CC.Net
que visual studio. Vous n'avez pas
à attendre des années pour une nouvelle version
Et vous n'avez pas à installer une nouvelle version de l'IDE
bénéficiez de nouvelles fonctionnalités.
pour NUnit comme ligne-tests, etc.
pour commencer pour une certaine raison. C'est
mieux, en 2008, mais encore trop lent
pour mon goût. Rapidement l'exécution d'un test
à voir si vous n'avez pas de casser quelque chose
peut prendre trop de temps. Avec NUnit
quelque chose comme Testdriven.Net pour exécuter
des tests à partir de l'IDE est en fait beaucoup
plus rapide. en particulier lors de l'exécution de
un seul test.
Dans le cadre de l'Kjetil Klaussen ceci est causé par le Visual Studio lanceur, l'exécution de MSTest tests TestDriven.Net fait MSTest performances comparables à celles des NUnit.
L'unité cadre de tests n'a pas vraiment d'importance, parce que vous pouvez convertir classes de test avec différents fichiers du projet et de compilation conditionnelle
(comme ça, VS->NUnit):
L'TestDriven.Net le plugin est agréable et pas très cher... Avec seulement les simples VS2008 vous devez trouver le test à partir de votre classe de test ou test de liste. Avec TestDriven.Net vous pouvez exécuter votre test directement à partir de la classe à tester. Après tout, les tests unitaires doivent être faciles à entretenir et à proximité du développeur.
Avantages/changements de VS2008 Intégré dans le Framework de Test Unitaire
éditions professionnelles (avant qu'il
requis cher versions de VS,
c'est juste pour le développeur de l'unité
les tests.) qui a laissé beaucoup de
les développeurs avec le seul choix de la
ouvrir/tests externes de cadres.
J'ai été en utilisant NUnit pour 2 ans. Tout est très bien, mais je dois dire que le système d'Unité de VS est assez agréable parce que c'est à l'intérieur de l'interface graphique, et peut plus facilement faire le test pour la fonction privée sans avoir à déranger. Aussi, l'Unité de Test de VS vous permettre de faire couvrant et d'autres choses que NUnit seul ne peut pas faire.
Une légère indisposition de Visual Studio est un framework de test est qu'il permettra de créer de nombreux test d'exécuter des fichiers qui ont tendance à encombrer votre répertoire de projet - même si ce n'est pas que les grandes d'un accord.
Aussi, si il vous manque un plugin comme TestDriven.NET, vous ne pouvez pas déboguer votre NUnit (ou MbUnit, xUnit, etc.) les tests unitaires dans l'environnement de Visual Studio que vous pouvez avec Microsoft VS framework de test, qui est construit dans.
Légèrement hors-sujet, mais si vous allez avec NUnit je peux vous recommandons d'utiliser ReSharper - il ajoute des boutons pour le VS de l'INTERFACE utilisateur qui le rendent beaucoup plus facile à exécuter et de déboguer des tests à partir de l'intérieur de l'IDE.
Cet examen est un peu out-of-date, mais explique cela plus en détail:
http://codebetter.com/blogs/paul.laudeman/archive/2006/08/15/Using-ReSharper-as-an-essential-part-of-your-TDD-toolkit.aspx
XUnit est une autre possibilité pour un nouveau projet. Il a peut-être plus intuitive que la syntaxe, mais n'est pas vraiment compatible avec les autres cadres.
http://www.codeplex.com/xunit
Ma principale de boeuf avec VS les tests unitaires sur NUnit est la VS la création de tests tend à injecter un tas de code généré pour privé de l'accès des membres.
Certains pourraient souhaitent tester leurs méthodes privées, certaines ne le sont pas, c'est un autre sujet.
Mon souci c'est que quand je suis en train d'écrire des tests unitaires, ils doivent être extrêmement contrôlé, donc je sais exactement ce que je suis en essais et exactement comment je vais le tester. Si il y a génération automatique de code, je vais perdre une partie de cette propriété.
J'ai fait quelques TDD en utilisant à la fois et (peut-être que je suis un peu idiote) nUnit semble être beaucoup plus rapide et plus simple à utiliser pour moi. Et quand je dis beaucoup, je veux dire beaucoup.
Dans MS Test, il y a trop d'attributs, partout - le code que faire de vrais tests est le petit de lignes que vous pouvez lire ici et là. Un gros gâchis. Dans nUnit, le code que faire le test juste domine les attributs, comme il se doit.
Aussi, dans nUnit, vous avez juste à cliquer sur les tests que vous souhaitez exécuter (un seul? tous les tests couvrant une classe? une assemblée? la solution?). En un seul clic. Et la fenêtre est clair et grands. Vous obtenez clair lumières vertes et rouges. Vous savez vraiment ce qui se passe en un seul coup d'oeil.
Dans VSTS, la liste de test est coincé dans le bas de l'écran, c'est petit et laid. Vous avez à regarder à deux fois pour savoir ce qui s'est passé. Et vous ne pouvez pas exécuter juste un test (bien, je n'ai pas trouvé encore!).
Mais j'ai peut-être tort, bien sûr - je viens de lire à propos de 21 messages blog sur "Comment faire simple TDD à l'aide de VSTS". J'aurais du le lire plus, vous avez raison.
Pour nUnit, j'ai lu un. Et j'ai été TDDing le même jour. Avec plaisir.
En passant, j'aime beaucoup les produits Microsoft. Visual Studio est vraiment le meilleur outil, un développeur peut acheter - mais TDD et gestion des éléments de Travail dans Visual Studio Team System suce, vraiment.
Le meilleur de tous.
Sylvain.
J'ai reçu des messages "NUnit structure de fichier est plus riche que VSTest"...
Bien sûr, si vous préférez le NUnit structure du fichier, vous pouvez utiliser cette solution à l'autre, comme ceci (NUnit->VS):
Ou de toute autre conversion... 🙂 Cette aide ici est juste un alias pour le compilateur.
D'abord je tiens à corriger une fausse déclaration: vous pouvez exécuter msTest en dehors de visual studio à l'aide de la ligne de commande. Bien que plusieurs CI des outils tels que TeamCity ont un meilleur soutien pour les NUnit (probablement le changement comme msTest devient de plus en plus populaire).
Dans mon projet actuel, nous utilisons à la fois et la seule grosse différence que nous avons trouvé est que mstest fonctionne toujours comme un 32bit alors que NUnit fonctionne comme 32bit ou 64bit épreuve qui n'questions si votre code utilise le code natif qui est 32/64 personne à charge.
J'ai commencé avec MSTest mais elle est passée pour une raison simple. MSTest ne prend pas en charge l'Héritage de Méthodes d'Essai des autres assemblées.
Je détestais l'idée d'écrire le même test plusieurs fois. Surtout sur un grand projet où les méthodes d'essai peuvent facilement atteindre les 100 de tests.
NUnit ne extactly ce dont j'ai besoin. La seule chose qui manque avec NUnit est un Visual Studio add-in qui a peut afficher le Rouge/Verte état (Comme VSTS) de chaque test.
.NET Framework de Tests de Conseils et .NET Tests Unitaires paquets?.
Si vous envisagez de soit MSTest ou nUnit, alors je vous recommande de regarder mbUnit. Mes raisons sont
L'origine, j'avais ramassé mbUnit en raison de son [RowTest ....] la fonctionnalité, et je n'ai pas trouvé une seule raison, pour revenir en arrière. J'ai passé tous mes actifs des suites de test de nUnit, et n'a jamais regardé en arrière. Depuis lors, j'ai converti deux différentes équipes de développement sur les avantages.
Autant que je sache, il y a quatre cadres disponibles pour les tests unitaires avec .NET ces jours-ci
NUnit a toujours été à l'avant, mais l'écart s'est fermé dans la dernière année ou ainsi. Je préfère encore NUnit moi-même, d'autant que ils ont ajouté une interface fluide a tout à l'arrière qui fait des tests très lisible.
Si vous êtes juste de commencer avec les tests unitaires, il n'a probablement pas faire beaucoup de différence. Une fois que vous êtes à la vitesse que vous serez dans une meilleure position pour juger de ce qui cadre le mieux à vos besoins.
Je n'aime pas VS intégré dans le framework de test, car il vous oblige à créer un projet distinct plutôt que d'avoir vos tests dans le cadre du projet, vous effectuez le test.
MSTest est essentiellement NUnit légèrement retravaillé, avec quelques nouvelles fonctionnalités telles que le montage de l'installation et de démontage, pas seulement le montage et test de niveau), et il manque certains des meilleurs morceaux (comme la nouvelle 2.4 contrainte de syntaxe). NUnit est plus mature, et il n'y a plus de support de la part de d'autres fournisseurs; et bien sûr, depuis qu'elle a toujours été libre (alors que MSTest seulement dans la version Professionnelle de 2008, avant cela, il était beaucoup plus cher Sku), la plupart des ALT.NET les projets de l'utiliser.
Cela étant dit, il ya certaines entreprises qui sont très réticents à utiliser quelque chose qui n'a pas l'étiquette Microsoft sur elle, et surtout pour OSS code. Donc, avoir une officiel MS framework de test peut être la motivation que ces entreprises ont besoin pour obtenir de l'essai; et, soyons honnête, c'est le test qui compte, pas ce que l'outil que vous utilisez (et à l'aide de Tuomas Hietanen du code ci-dessus, vous pouvez presque faire votre test cadre interchangeable).
SetUp
etTearDown
attributs: jamesnewkirk.typepad.com/posts/2007/09/why-you-should-.htmlAvec la sortie en .NET 4.0 de la Les Contrats de Code du système et la disponibilité d'un vérification statique, vous devez théoriquement écrire de moins en moins de cas de test et un outil comme Pex aidera à identifier les cas. C'est la discussion à portée de main, si vous avez besoin de faire moins avec des tests unitaires car vos contrats couvrent votre queue, alors pourquoi ne pas tout simplement aller de l'avant et utiliser les pièces, car c'est un de moins de dépendance à gérer. Ces jours-ci, je suis tout à propos de simplicité. 🙂
Voir aussi:
Je préfère l'utilisation de MS est peu framework de test, mais pour l'instant suis coller avec NUnit. Les problèmes avec les MS sont, en général, (pour moi)
Mises en garde
- Si je ont été de tester un aspx site, je certainement l'utilisation de MS de
- Si je développais en solo, aussi MS serait bien
- Si j'avais limité la compétence et n'a pas pu configurer NUnit 🙂
Je trouve ça beaucoup plus facile à écrire mes tests et le feu jusqu'à NUnitGUI ou l'une de l'autre les extrémités avant (testDriven est loin, loin, loin, loin, hors de prix). La configuration de débogage avec la version ligne de commande est également assez facile.