Wie vergleicht sich NUnit für C # mit der in Visual Studio integrierten Unit Test-Funktion?

12

Ich muss in einem Team arbeiten, um eine mittelgroße Desktop-Anwendung zu entwickeln, die mit C # .NET entwickelt wurde. Zuvor habe ich Unit Testing und Test Driven Development nicht angewendet. Mir ist bekannt, dass es viele Tools und Frameworks für Unit Testing C # -Anwendungen gibt. Ab sofort sind mir Nunit und die in Visual Studio integrierte Unit Testing-Einrichtung bekannt.

Ich würde gerne wissen, wie die beiden vergleichen?

Shamim Hafiz
quelle

Antworten:

14

Es gibt sicher eine gewisse Überlappung zwischen den beiden. NUnit ist der Vorgänger und dadurch ausgereifter. C # Unit Test Framework ist jünger, aber in Visual Studio integriert.

Ich komme aus der Java-Welt, in der JUnit König ist (es gibt andere, aber keine, die so beliebt sind), und NUnit 2.5.x passt wirklich gut zur Funktionsweise von JUnit 4. Tatsächlich funktioniert es viel besser als das Java-Gegenstück.

In Bezug auf die Testspezifikation bevorzuge ich NUnit. Sicher, MS Test weist ähnliche (aber unterschiedliche) Attribute auf, die Sie auf Ihre Klassen anwenden, aber ich glaube, es fehlen einige Funktionen, die Ihnen einige Arbeit bei bestimmten Testarten ersparen können. Möglicherweise möchten Sie eine ähnliche Diskussion zu StackOverflow lesen .

Ich mag das in NUnit integrierte neue Zusicherungsmodell (es verwendet die Zusicherungen im Hamcrest- Stil), da sie leicht zu lesen und leicht zu erweitern sind.

  • NUnit wird besser von Drittanbietern unterstützt, MS Test wird besser integriert (sofort einsatzbereit).
  • NUnit wird flexibler und erweiterbarer sein, MS Test wird in diesem Bereich darunter leiden.
  • Beide führen Unit-Tests durch und überprüfen Ihre Ergebnisse. Beide funktionieren für TDD.
Berin Loritsch
quelle
3

Der einzige wirkliche Unterschied, den ich bemerkte, als ich ein Erstellungsskript erstellen musste, um es auf einem dedizierten MSBUILD-Server von TFS auszuführen, nUnit einzurichten und die Ergebnisse von nUnit-Tests zu erhalten, war ein schwerer Schmerz.

Es gab auch ein Problem mit Resharper, bei dem MSTest-Tests nicht vom Testläufer ausgeführt werden konnten. In neueren Versionen ist dies behoben. Wenn Sie also eine alte Version von Resharper haben, ist dies möglicherweise immer noch ein Problem.

Dieser Beitrag von Roy Oshereve ist noch ein schöner Überblick.

ps: Meine andere Antwort wurde gelöscht, war überhaupt nicht hilfreich, ich entschuldige mich dafür.

KeesDijk
quelle