Ratschläge zum .NET Testing Framework
-
08-06-2019 - |
Frage
Ich möchte bei meiner Arbeit ein Unit-Testing-Framework in den Mix einführen.Wir verwenden Visual Studio 2005 (obwohl wir möglicherweise in den nächsten 6 Monaten auf 2008 umsteigen) und arbeiten hauptsächlich in C#.Wenn das Framework über eine Art IDE-Integration verfügt, wäre das am besten, aber ich bin offen für Frameworks, die keine Integration haben, aber dennoch relativ einfach einzurichten sind.Ich werde auf die eine oder andere Weise auf Widerstand stoßen. Wenn ich also sicherstellen kann, dass das, was ich vorantreibe, nicht nervig ist, würde das meinem Fall helfen.
Die offensichtliche Wahl aus der Forschung, die ich bisher durchgeführt habe, deutet auf nUnit, aber ich würde gerne die Eindrücke von jemandem sammeln, der es tatsächlich verwendet hat, bevor ich es meinem Team empfehle.
Hat jemand da draußen nUnit verwendet?Wenn ja, gibt es Fallstricke oder Einschränkungen, die ich beachten sollte?Gibt es da draußen noch andere gute Optionen?Wenn ja, wenn Sie bereits beide nUnits verwendet haben, würde ich mich sehr über eine Vorstellung von deren Stärken und Schwächen freuen.
Lösung
Ich finde NUnit
Ist Ihre beste Wahl.Mit TestDriven.NET
, Sie erhalten eine großartige Integration in sich VS.NET
.(Resharper verfügt auch über einen Unit-Test-Runner, falls Sie ihn verwenden). NUnit
Es ist einfach zu bedienen und folgt einem etablierten Paradigma.Sie finden auch zahlreiche Projekte/Tutorials/Anleitungen, die es verwenden, was immer hilfreich ist.
Ihre andere Hauptauswahl ist wahrscheinlich MBUnit, das sich immer mehr als das positioniert BDD
Rahmen der Wahl (in Verbindung mit Gallio http://www.gallio.org).
Andere Tipps
Scott Hanselman hatte einen guten Podcast zu diesem Thema mit dem Titel:
„Vergangenheit, Gegenwart und Zukunft von .NET Unit Testing Frameworks“
:
Die eingebauten Unit-Tests in VS 2008
ist in Ordnung, aber es ist schwierig, sich darin zu integrieren CruiseControl.net
, sicherlich viel schwieriger als normal NUnit
.
Also mach mit NUnit
wenn Sie schöne automatisierte Tests planen.
Visual Studio 2008
verfügt über einen integrierten Testprojekttyp, der ähnlich wie NUnit funktioniert, aber offensichtlich eine viel engere Integration mit NUnit aufweist Visual Studio
(kann auf jedem Build ausgeführt werden und zeigt die Ergebnisse ähnlich wie auf der Seite mit den Konvertierungsergebnissen beim Aktualisieren von Lösungsdateien an), aber es ist offensichtlich nicht so ausgereift wie NUnit, da es ziemlich neu ist und ich nicht sicher bin, wie es mit Spott umgeht.
Es lohnt sich jedoch zu prüfen, wann Ihr Team umzieht VS2008
Wir haben verwendet xUnit.net.Es scheint das Beste zu vereinen nUnit
, mbUnit
Und MSTest
.
Als ich mit Unit-Tests begann, begann ich mit NUnit
Da es einfach einzurichten und zu verwenden ist, verwende ich derzeit den integrierten Test-Runner, der im Lieferumfang enthalten ist Resharper
, auf diese Weise kann ich problemlos zwischen Code und Testergebnissen wechseln.Übrigens NUnit
erkennt, wann Sie Ihren Code kompiliert haben, sodass Sie keine Aktualisierung durchführen müssen NUnit
. Resharper
Führt automatisch einen Build durch, wenn Sie sich für die Ausführung eines bestimmten Tests entscheiden.
VSTT 2010
sollte eine gute Wahl sein, wenn Sie nach einer Funktionstestautomatisierung suchen.Testen von Webdiensten, UI
Tests, Biztalk-Tests und Unterstützung für datengesteuerte Tests.Bitte sieh dir ... an VSTT
mbUnit
ist einen Blick wert, es verfügt über eine Reihe vergleichbarer Funktionen NUnit
, Es verfügt über eine eigene GUI oder kann in diese integriert werden VS
Wenn Sie haben Resharper
.Ich würde es auch empfehlen Rhino Mocks
wenn Sie irgendetwas tun TDD
.
Ich würde auch mbUnit sagen. Mir gefällt es, einen einzelnen Test viele Male ausführen zu können, indem einfach Eingaben und Ergebnisse direkt über der Testfunktion angegeben werden.Schreckliche Beschreibung dessen, was ich meine Hier ist ein Link, der Ihnen zeigt, was ich meine.