Niedawno budowałem ramy testowe dla trochę języka C #, nad którym pracowałem. Mam skonfigurowany NUnit i nowy projekt w moim obszarze roboczym, aby przetestować komponent. Wszystko działa dobrze, jeśli załaduję moje testy jednostkowe z Nunit (v2.4), ale doszedłem do punktu, w którym naprawdę przydatne byłoby uruchomienie w trybie debugowania i ustawienie kilku punktów przerwania.
Wypróbowałem sugestie z kilku przewodników, z których wszystkie sugerują zmianę właściwości „Debugowania” projektu testowego:
Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll
Używam tam wersji konsolowej, ale próbowałem również wywoływać GUI. Oba dają mi ten sam błąd, kiedy próbuję rozpocząć debugowanie:
Cannot start test project 'TestDSP' because the project does not contain any tests.
Czy to dlatego, że normalnie ładuję \ DSP.nunit do GUI Nunit i tam właśnie odbywają się testy?
Zaczynam myśleć, że problem może polegać na tym, że VS chce uruchomić własną strukturę testową i dlatego nie może znaleźć testów NUnit?
Edycja : dla tych, którzy pytają o urządzenia testowe, jeden z moich plików .cs w projekcie TestDSP wygląda mniej więcej tak:
namespace Some.TestNamespace
{
// Testing framework includes
using NUnit.Framework;
[TestFixture]
public class FirFilterTest
{
[Test]
public void Test01_ConstructorTest()
{
...some tests...
}
}
}
... Jestem całkiem nowy w C # i frameworku testowym NUnit, więc jest całkiem możliwe, że przegapiłem kilka ważnych informacji ;-)
Ostateczne rozwiązanie : dużym problemem był projekt, którego użyłem. Jeśli wybierzesz Other Languages -> Visual C# -> Test -> Test Project
... kiedy wybierasz typ projektu, Visual Studio spróbuje użyć własnego środowiska testowego, o ile wiem. Zamiast tego należy wybrać normalny projekt biblioteki klas C #, a wtedy instrukcje w wybranej odpowiedzi będą działać.
źródło
Odpowiedzi:
Używam tej samej techniki, co próbujesz Jon, bez flagi / assembly, tj
Czy plik TestDSP.dll zawiera wszystkie Twoje elementy TestFixtures?
Ponieważ mój projekt testowy nie jest projektem startowym w rozwiązaniu, uruchamiam testy, klikając prawym przyciskiem myszy projekt testowy i wybierając opcję Debuguj -> Uruchom nową instancję
źródło
/run
do swoich * argumentów wiersza poleceń, które automatycznie rozpoczną wykonywanie testów ... Podsumowałem to również (używając obrazów) w moim wpisie na blogu .<supportedRuntime version="v2.0.50727" />
dodać komentarz w nunit.exe.config.Kiedy potrzebuję debugowania moich testów NUnit, po prostu podłączam się do aplikacji NUnit GUI
nunit-agent.exe
za pomocą "Debug | Attach to Process" i uruchamiam testy z GUI. Wszystkie punkty przerwania w moich testach (lub testowanym kodzie) są trafione. Czy źle zrozumiałem twoje pytanie, czy to zadziała w twoim przypadku?źródło
<startup> <supportedRuntime version="4.0" /> </startup>
.Po prostu usuń linię, która wygląda
z pliku projektu. Ta linia w zasadzie mówi VS.Net, że jest to projekt testowy, stąd „Nie można rozpocząć projektu testowego”. Do Twojej wiadomości, tutaj pierwszy przewodnik mówi „to test”, drugi mówi „to jest C #”. Więcej informacji na temat tych Przewodników: http://www.mztools.com/Articles/2008/MZ2008017.aspx
źródło
Oprócz odpowiedzi udzielonej przez @Justin tutaj jest więcej szczegółów dotyczących NUnit 2.6.
Używając NUnit 2.6 dołącz do nunit.exe lub nunit-console.exe, a NIE agenta. Konfiguracja odnotowana przez @Justina jest nieco inna. Poniżej znajduje się przykład z nunit.exe.config (taki sam dla nunit-console.exe.config).
W przypadku projektu testowego .NET 4, aby uzyskać punkty przerwania, musisz skomentować lub usunąć wiersz v2.0 zgodnie z sugestią komentarza. Kiedy już to zrobiłem, mogłem debugować projekt testowy .NET 4.0.
źródło
v2.0.50727
linią podczas debugowania zestawów .NET 2 z VS2005 za pomocą nunit. (v4
Linia uniemożliwiła podłączenie debugera VS 2005).Jeśli używasz NUnit 2.4 lub nowszego, możesz umieścić następujący kod w swojej
SetUpFixture
klasie. (Możesz to zrobić ze starszymi wersjami, ale będziesz musiał zrobić dowolny odpowiednik, który ma doSetUpFixture
, lub skopiować go do samego testu).To
Debugger.Launch()
powoduje, że po kliknięciu przycisku Uruchom w NUnit pojawia się następujące okno dialogowe.Następnie wybierasz działające wystąpienie programu Visual Studio z otwartym projektem (drugie na moim zrzucie ekranu), a następnie debuger zostanie dołączony, a wszelkie punkty przerwania lub wyjątki pojawią się w programie Visual Studio.
źródło
W Nunit 3.0.1 (używam VS2013), otwórz z menu głównego> Test> Windows> Test Explorer. Następnie w „Eksploratorze testów” kliknij prawym przyciskiem myszy przypadek testowy, możesz zobaczyć:
Mam nadzieję że to pomoże.
źródło
Zainstaluj TestDriven.NET , który jest wtyczką do programu Visual Studio
Stamtąd możesz kliknąć prawym przyciskiem myszy zestaw testów jednostkowych i kliknąć Uruchom testy, aby uruchomić cały zestaw, kliknij prawym przyciskiem myszy klasę TestFixture, aby uruchomić tylko testy w tej klasie, lub kliknij prawym przyciskiem myszy metodę testową, aby uruchomić tylko tę metodę.
Możesz również przetestować za pomocą debugera, jeśli potrzebujesz punktu przerwania w testach w trybie debugowania.
źródło
Wypróbuj NUnitit - dodatek do programu Visual Studio typu open source do debugowania przypadków testowych NUnit
Strona główna - http://nunitit.codeplex.com/
źródło
Usuń ProjectTypeGuids z pliku projektu.
źródło
Teraz ze zdjęciami:
File -> Open Project
Wybierz swój test
.dll
z folderu bin (C:\......\[SolutionFolder][ProjectFolder]\bin\Debug\xxxxTests.dll
)Przejdź do programu Visual Studio
Debug -> Attach to process
(otworzy się okno Dołącz do procesu)Z listy przewiń w dół i wybierz,
nunit-agent.exe
a następnie kliknijAttach
W tym momencie punkty przerwania w twoich testach powinny zmienić kolor na dojrzały i czerwony (z pustego).
Kliknij
Run
naNunit Gui
i powinieneś otrzymać breakpoint trafienie ...Mam nadzieję, że zaoszczędzi ci to trochę czasu.
źródło
Jeśli możesz uruchomić konsolę / lub GUI, ale punkty przerwania nie są trafione, może to być spowodowane tym, że Twoja aplikacja działa w innym środowisku uruchomieniowym .NET niż NUnit. Sprawdź, czy plik nunit-console.exe.config / nunit.exe.config ma określone środowisko wykonawcze (konfiguracje znajdują się w tym samym katalogu co pliki nunit exe). Określ środowisko wykonawcze za pomocą węzła startowego:
źródło
Jeśli ścieżka projektu zawiera spacje, np. „Nowy projekt” w ścieżce, należy
<path>\bin\Debug\New Project\Quotes.Domain.Tests.dll
ująć ścieżkę projektu Opcja Start -> Argumenty wiersza poleceń w podwójne cudzysłowy.Spędziłem dużo czasu, aby to rozgryźć.
źródło
Odnośnie tego, co powiedział pan Patrick McDonald
Próbowałem ubiegać się o moją bibliotekę klas testowych, ale dostałem błąd dotyczący ścieżki, więc próbowałem usunąć 'Argumenty wiersza poleceń' i na szczęście działało to dobrze i zgodnie z oczekiwaniami.
źródło
Wygląda na to, że próbujesz użyć niewłaściwej biblioteki. NUnit można uruchomić tylko wtedy, gdy używana dll zawiera TestFixtures.
+1 na TestDriven.Net. Miałem okazję go używać wiele razy. Możesz pobrać wersję osobistą do celów oceny zgodnie z licencją pod adresem http://testdriven.net/purchase_licenses.aspx .
źródło
Otrzymałem ten sam błąd z MSTest. Odkryłem, że w oknie Test Output niektóre testy miały zduplikowane identyfikatory i nie można ich było załadować. Usunąłem wszystkie zduplikowane testy i teraz mogłem je uruchamiać podczas uruchamiania projektu.
źródło
Obecnie dostępne jest również rozszerzenie „Visual NUnit”, które umożliwia uruchamianie testów z poziomu programu Visual Studio, podobnie jak uchwyty wbudowane w ramy testów. Sprawdź to w menedżerze rozszerzeń.
źródło
Otwórz Visual Studio ---> Twój projekt ---> Wybierz `` Właściwości '' ---> Wybierz `` Debuguj '' -> Wybierz `` Uruchom program zewnętrzny '' i ustaw tam ścieżkę swojego NUnit (np .: Uruchom program zewnętrzny = C : \ Program Files \ NUnit 2.6.2 \ bin \ nunit.exe) ----> Zapisz
Po ustawieniu tego po prostu kliknij Debuguj
źródło
Dla mnie rozwiązaniem było dostosowanie pliku konfiguracyjnego nunit. Aby użyć nunit z platformą 4.5-.Net i opcją kompilacji x64, musiałem dodać jedną linię do tagu startowego (obsługiwana wersja runtime).
Potem mogłem zacząć od kliknięcia prawym przyciskiem myszy na Testproject Debug -> Start new instance. Wcześniej musiałem ponownie ręcznie dołączyć projekt do procesu.
Moje właściwości debugowania to C: \ Program Files (x86) \ NUnit 2.6.4 \ bin \ nunit.exe z argumentem lokalizacji testowanego pliku .dll.
Więcej informacji: nunit do testowania w .NET 4.0
źródło
Sprawdź, czy to pomaga. Jak dodać NUnit w programie Visual Studio
(RighteousRant) Chociaż osobiście nie podoba mi się to podejście. Jeśli potrzebujesz debuggera podczas testowania kodu, jest to „zapach”, ponieważ nie masz wystarczającej pewności siebie / nie wiesz, jak działa kod i potrzebujesz debugger, żeby ci to powiedzieć. TDD powinno uwolnić cię od potrzeby debuggera, jeśli zostanie zrobione dobrze. Użyj opcji „Dołącz debuger do NUNit” tylko w rzadkich przypadkach lub gdy brodzisz w czyimś kodzie.
źródło