Visual Studio Unit Testing: SetUp und TearDown


87

Anstelle von [SetUp] und [TearDown] in Nunit, was ist die Alternative in Visual Studio Ultimate 2010 Unit Testing. In Nunit können Sie sich vorstellen, dass Setup- und Teardown-Methoden als Konstruktoren und Destruktoren für die Tests in unserer Klasse dienen.



Antworten:


140

[TestInitialize]Vor jedem Test wird eine mit Anmerkungen versehene Methode ausgeführt. Ebenso [TestCleanup]ist nach jedem Test.

[ClassInitialize]und [ClassCleanup]werden vor und nach der Testsuite in der TestClass ausgeführt.


5
Sie hätten hinzufügen können, dass die ClassInitialize-Methode einen TestContext als Argument verwendet.
Boutta

3
Und es sollte auch öffentlich statisch sein
Shalom Aleichem

4

Visual Studio verwendet MSTest, das Microsoft-Framework für Komponententests, das NUnit ähnelt. Tatsächlich sind die meisten von ihnen in ihren Konzepten ähnlich, aber in ihrer Syntax unterschiedlich.

Um den Vergleich anzuzeigen, haben die Entwickler von xUnit (einem anderen Unit-Testing-Framework) hier eine Liste:

http://xunit.github.io/docs/comparisons.html

Genauer gesagt, was Sie gefragt haben, TestInitializeist MSTests Äquivalent zu NUnits Setupund dasselbe für TestCleanupund TearDown.

Eine Sache zu beachten, ich würde bei NUnit bleiben, wenn Sie versuchen, automatisierte Unit-Tests oder eine Art kontinuierliche Integration durchzuführen. Der Hauptgrund, warum die verschiedenen *unitFrameworks gegenüber MSTest bevorzugt werden, besteht darin, dass Sie eine Kopie von Visual Studio auf dem Computer haben müssen, auf dem Sie die Tests ausführen . Gut für Ihren eigenen lokalen Computer, andere Geschichte für einen CI-Server. Visual Studio ist ein Schwein eines Programms, und es auf einem Server zu installieren (der im Allgemeinen so leicht und schnell wie möglich sein soll), nur Tests auszuführen, ist etwas ärgerlich.


7
Sie können TFS Team Test Agent einfach auf einem CI-Server installieren (und nicht konfigurieren), um die Testläufer zu installieren ( microsoft.com/en-us/download/details.aspx?id=1334 ). Eine vollständige Visual Studio-Installation ist nicht erforderlich, es sei denn, Sie möchten generische, geordnete, codierte UI- oder Leistungstests.
Jessehouwing

1
Team Build 2012 installiert sofort Unterstützung für verschiedene Testläufer, ohne dass Visual Studio auch auf Ihrem Build-Server installiert werden muss.
Jessehouwing
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.