Testy jednostkowe programu Visual Studio: SetUp i TearDown

90

Zamiast [SetUp] i [TearDown] w Nunit, jaka jest alternatywa w Visual Studio Ultimate 2010 Unit Testing. W Nunit można sobie wyobrazić, że metody konfiguracji i porzucenia pełnią rolę konstruktorów i destruktorów dla testów w naszej klasie.

Etibar Hasanov
źródło

Odpowiedzi:

143

Metoda z adnotacją [TestInitialize]jest uruchamiana przed każdym testem. Podobnie [TestCleanup]jest po każdym teście.

[ClassInitialize]i [ClassCleanup]są uruchamiane przed i po „zestawie” testów wewnątrz klasy TestClass.

Mikeb
źródło
6
Można było dodać, że metoda ClassInitialize przyjmuje jako argument TestContext.
boutta
4
I powinno to być również publiczne
Shalom
4

Visual Studio będzie korzystać z MSTest, czyli frameworka testów jednostkowych Microsoftu, jest podobny do NUnit. W rzeczywistości większość z nich ma podobne koncepcje, ale różni się składnią.

Aby zobaczyć porównanie, twórcy xUnit (innego frameworka do testów jednostkowych) mają tutaj listę:

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

Dokładniej to, o co prosiłeś, TestInitializejest odpowiednikiem MSTest dla NUnit Setupi to samo dla TestCleanupi TearDown.

Warto zauważyć, że zostanę przy NUnit, jeśli próbujesz przeprowadzić automatyczne testy jednostkowe lub jakąś ciągłą integrację. Głównym powodem, dla którego różne *unitstruktury są preferowane w stosunku do MSTest, jest to, że musisz mieć kopię programu Visual Studio na komputerze, na którym przeprowadzasz testy. Dobra dla własnej maszyny lokalnej, inna historia dla serwera CI. Visual Studio to świnia programu, a zainstalowanie go na serwerze (który ogólnie ma być tak lekki i szybki, jak to tylko możliwe), samo uruchomienie testów jest nieco denerwujące.

Arran
źródło
7
Możesz po prostu zainstalować agenta TFS Team Test Agent (a nie konfigurować go) na serwerze CI, aby zainstalować programy uruchamiające testy ( microsoft.com/en-us/download/details.aspx?id=1334 ). Nie ma potrzeby pełnej instalacji programu Visual Studio, chyba że potrzebujesz testów ogólnych, zamówionych, CodedUI lub wydajności.
jessehouwing
1
Team Build 2012 instaluje obsługę różnych programów uruchamiających testy natychmiast po wyjęciu z pudełka, bez konieczności instalowania programu Visual Studio również na serwerze kompilacji.
jessehouwing