Welches Unit-Testing-Framework? [geschlossen]

72

Ich habe mich gefragt, mit welchem ​​Unit-Testing-Framework ich mich wirklich vertraut machen kann. Ich weiß, dass dies eine Frage der Meinung sein könnte, aber ich dachte, ich würde es trotzdem fragen. Ich weiß, dass ich es eines Tages tun muss, also könnte ich genauso gut lernen, es zu benutzen. Ich weiß, dass es da draußen einige gibt, aber welches ist für die C # -Entwicklung effektiv?

An dieser Frage kann ich erkennen, dass Unit-Tests notwendig sind, aber ich persönlich habe sie nicht verwendet. Deshalb stelle ich diese Frage.

Tony The Lion
quelle
Dies ist wirklich eine schlechte Frage und sollte als S & A geschlossen werden. Weder enthält es gute Antworten außer "Hey, ich benutze xyz und es ist wirklich cool", noch ist es eine wertvolle Ressource für jemanden, der nach einem Vergleich der aktuellen Frameworks sucht.
Johannes Rudolph
2
Ich finde, dies ist eines der Hauptprobleme bei Leuten, mit denen ich über diese Site spreche. Sie haben diese strengen Regeln für das Stellen von Fragen, die von Fragentrollen bombardiert werden. Die Leute möchten nur in der Lage sein, eine ehrliche Frage zu stellen und eine gute Antwort zu erhalten. Wenn Sie jede Frage kuratieren möchten, kuratieren Sie stattdessen möglicherweise die schlechten Antworten und lassen Sie die Leute von dieser Community ganzheitlich lernen, wie sie wollen. Dies kann nicht das erste Mal sein und die Häufigkeit, mit der Leute hier Fragen stellen, kann nicht so gering sein. Arbeiten Sie also besser daran, dies zu beheben, als den Leuten zu verbieten, 6 Monate lang Fragen zu stellen.
Rob

Antworten:

41

Ich würde mit NUnit gehen .

Einige Links: NUnit QuickStart , NuGet-Paket

Adriaan Stander
quelle
3
ReSharper bietet eine nahtlose IDE-Integration von NUnit (plus viele weitere Vorteile).
TrueWill
Ich habe gehört (noch nicht ausprobiert), dass sich MSTest heute erheblich verbessert hat - und nicht wirklich hinter NUnit oder anderen fehlt. Ist das wahr? Oder würden Sie NUnit auch heute noch für neue Projekte empfehlen?
Yoav Feuerstein
57

Persönlich bevorzuge ich das Visual Studio Unit Testing Framework aus zwei Hauptgründen:

  • Es lässt sich nahtlos in die IDE integrieren.
  • Es ist ein Programm weniger, das in einer Entwicklungsumgebung bereitgestellt werden muss.

Trotzdem wird so ziemlich jedes Unit-Test-Framework den Trick machen, das Wichtigste ist, Tests zu haben!

Aaronaught
quelle
13
Der Nachteil dabei ist, dass Ihr TFS auch eine VS-Lizenz benötigt, wenn Sie (Sie tun es!) einen kontinuierlichen Integrations-Build möchten, in dem die Tests ausgeführt werden. Für größere Geschäfte oder Partner mag das kein Problem sein, aber es ist zumindest eine weitere Sache, die berücksichtigt werden muss.
mbx
5
NUnit unterstützt jetzt die nahtlose Integration in die IDE und benötigt keine Bereitstellung (bei Verwendung von NuGet).
John Gietzen
1
@mbx - Für TFS-Build-Agenten ist keine VS-Lizenz erforderlich.
Spivonious
2
@Spivonious Technisch benötigt der TFS / Build-Agent ein lizenziertes VS. Allerdings: Wenn Sie einen oder mehrere lizenzierte Benutzer von Visual Studio Enterprise mit MSDN oder Visual Studio Professional mit MSDN haben, können Sie die Visual Studio-Software auch als Teil von Team Foundation Server 2015 Build Services installieren. Auf diese Weise müssen Sie keine Visual Studio-Lizenz erwerben, um die Ausführung von Visual Studio auf dem Build-Server für jede Person abzudecken, deren Aktionen einen Build initiieren. siehe: VS und MSDN Licensing Whitepaper
mbx
35

Bleiben Sie nicht bei der Auswahl eines Frameworks hängen. Wählen Sie einfach eine aus und beginnen Sie mit dem Testen - sie sind gar nicht so unterschiedlich. Wenn Sie eine Weile Tests geschrieben haben, wissen Sie, wonach Sie suchen müssen, um Ihren Anforderungen gerecht zu werden.

Persönlich habe ich festgestellt, dass xUnit , Testdriven.Net und Moq ein sehr flexibler Satz von Testwerkzeugen sind.

Siehe auch diesen Beitrag: NUnit vs. MbUnit vs. MSTest vs. xUnit.net

Luhmann
quelle
1
+1 für Moq! Ich liebe diesen Rahmen.
TrueWill
6

Ich habe mich für NUnit entschieden, da ReSharper native IDE-Unterstützung bietet (was viel Zeit spart). Es wird auch von TeamCity beim Ausführen und Berichten automatisierter Tests unterstützt.

Mythos
quelle
2

Ich verwende NUnit für das Testframework und ReSharper für die Integration in VS (und alles andere, was ReSharper tut).

Robert Rossney
quelle
1
Huch. ReSharper. Behoben, danke.
Robert Rossney
1

Verwenden Sie MbUnit (mit Gallio), NUnit, MsTest oder xUnit. Sie können mehrere Komponententests kombinieren. Ich benutze NUnit für TDD

maxname
quelle
Dies funktioniert nicht mit VS2015
sweetfa
0

Es gibt einige Gründe für das Testen, daher einige Testumgebungen. Außerdem gibt es Teststufen wie Simple, Stubs und Mocks. Sie können beispielsweise das Verhalten testen und nicht den Status.

In Bezug auf die Funktion verwende ich normalerweise das in Visual Studio integrierte Setup, füge einen Verweis auf die NUnit-DLL hinzu und ändere die c # -Anmerkungen in NUnit. Dies liegt daran, dass ich gerne außerhalb von Visual Studio teste, insbesondere wenn andere in meinem Team involviert sind (und wir die Team Edition von VS noch nicht gekauft haben).

Zachary Scott
quelle