2010-01-01 17 views
7

Próbuję dostać się do testów jednostkowych za pomocą C#. Różni ludzie powiedzieli mi, że mam iść z NUnitem, ponieważ jest lepszy niż MSTest (najwyraźniej nie mam pojęcia) i ma również bardzo dobre wsparcie w ReSharper, którego używam.Jak mogę utworzyć testy NUnit za pomocą programu ReSharper?

Jeszcze nigdy nie napisałem testu jednostkowego w moim życiu (trzymaj się ze mną, jestem studentem uniwersytetu). ReSharper ma tę fajną opcję menu kontekstowego CreateUnitTests, w której widziałem innych (niedbale wyglądających przez ramię), by osiągnąć wielki sukces. Klikniesz prawym przyciskiem myszy w metodę, wybierz CreateUnitTests i gotowe. Zostaje utworzony szkielet testowy. Po prostu wypełniasz ważne bity.

Teraz, kiedy próbuję to samo, ReSharper chce, żebym utworzył nowy Projekt Testowy ... i kiedy mu pozwoliłem, tworzy (jak przypuszczam) projekt MSTest z oczywiście szablonem testowym MSTest. Ale już mam projekt klasy libarary, który odwołuje się do "nunit.framework" i ma kilka testów NUnit, które ReSharper jest bardziej niż chętny do uruchomienia. Wciąż jednak tworzy tylko szablony testów MSTest i tylko w specjalnych projektach "Test Project".

Co robię źle? Czy robię coś złego, czy też tworzenie szablonów testów NUnit nie jest możliwe w ReSharper? Przeszukałem sieć i przeczytałem dokumentację ReSharper i NUnit i nadal nie mogę się domyślić, czy to możliwe, czy co.

Byłbym wdzięczny, gdyby ktoś mógł mi dostarczyć poradnik dotyczący używania ReSharper + NUnit.

EDIT: używam ReSharper 4.5 i NUnit 2.5.3

Edit2: Podobno jestem idiotą. CreateUnitTests nie jest częścią ReSharper, ale jest częścią Visual Studio i dlatego zawsze działa z MSTest.

Odpowiedz

12

W projekcie testowym utworzonym przez Resharper usuń odniesienie do biblioteki testowej DLL jednostki Microsoft (nie pamiętam nazwy off-hand, ale jest to dość długa nazwa).

Następnie dodaj nowe odniesienie - nunit.framework.dll, powinieneś je znaleźć na pierwszej karcie okna dialogowego Dodaj odniesienie.

Dodaj using NUnit.Framework do pliku klasy testu urządzenia.

Następnie należy zmienić atrybuty:

[TestClass] to [TestFixture] 
[TestMethod] to [Test] 

Więc jeśli kończy się z projektu MSTest, należy powyższe kroki, aby uzyskać NUnit zamiast.

UWAGA: Program Resharper 4.5 ma wbudowaną obsługę uruchamiania testów MSTest i NUNit. Zamiast tego możesz spróbować.

+1

Ale dodanie nowego testu z CreateUnitTests ponownie dodaje odniesienie do testowania DLL Microsoft i ponownie wykorzystuje TestClass zamiast TestFixture etc ... będę musiał usunąć te bardzo czas? Czy to oznacza, że ​​ReSharper może tylko tworzyć szablony testów MSTest? – Lucas

+3

Nie jestem zaznajomiony z opcjami Resharpera - czy jesteś pewien, że to Resharper daje ci możliwość tworzenia testów jednostkowych? Używam Visual Team 2008 Team System i po kliknięciu prawym przyciskiem myszy na metodę otrzymuję opcję "Create Unit Tests". Ponieważ jest to część VS, zawsze będzie używać MSTest. Nie jestem pewien, czy to Resharper to robi. Aby się tego dowiedzieć, należy wyłączyć Resharpera (Narzędzia-> Addiny) i utworzyć test jednostkowy od zera, jeśli używa MSTest, to nie jest Resharper. –

+0

Ahhh, rozumiem. Najwyraźniej jestem idiotą. – Lucas

5

Nie trzeba uruchamiać żadnych kreatorów, aby korzystać z NUnit. Możesz po prostu utworzyć bibliotekę klas, dodać odniesienie do NUnit i oznaczyć swoje testy odpowiednim atrybutem. Wizards są tylko dla MSTest, a nawet wtedy nie są wymagane.

Po przetestowaniu urządzenia, osoba testująca ReSharper wykryje je, a na marginesie po lewej stronie pojawi się kilka ikon, które umożliwią przeprowadzenie testów/debugowania. Zobacz pierwsze zdjęcie tutaj dla przykładu:

NUnit and ReSharper

Powiązane problemy