2009-07-07 19 views
5

Próbuję debugować niektóre z moich testów jednostkowych w Visual Studio 2008 i zauważyłem, że punkty przerwania nie wydają się być zatrzymaniem wykonywania.Przypadki testów jednostki debugowania w VS 2008

W pewnym sensie zakładałem, że było to tak proste, jak ustawienie punktu przerwania, a następnie wykonanie "Testu | Debuguj | Testy w bieżącym kontekście" ... ale to nigdy nie trafia w ustawione przeze mnie punkty przerwania.

Czy robię coś nie tak, czy to jest po prostu zepsute?

Dzięki Brandon

+0

to jest ten framework testowy Microsoftu, czy używasz czegoś innego niż NUnit? –

+0

Zwykle po prostu wykonuję wszystkie testy, zespół jest następnie ładowany, a punkty przerwania stają się aktywne. Może Twój zestaw z jakiegoś powodu nie załaduje się (przy założeniu, że framework MS tutaj) –

Odpowiedz

0

Sprawdź:

  • Czy testy oznaczone [TestClass] i [TestMethod]?
  • Czy korzystasz z wersji Debug lub Release? (Nie robi dużej różnicy, z wyjątkiem sytuacji, kiedy to robi) Debugowanie jest lepsze.
  • Czy kompilujesz z optymalizacją lub bez? Bez jest lepiej
  • Spróbuj uruchomić wszystkie testy w Rozwiązaniu, jeśli trafisz na punkty przerwania
  • , a na koniec, być może masz błąd i dlatego nie trafiłeś w kod?
2

Miałem ten sam problem do momentu ręcznego dołączenia do procesu aspnet_wp.exe, a następnie kliknięcia przycisków Testy debugowania. Wtedy moje punkty przełomowe zostały w końcu trafione.

+0

Kiedy próbowałem dołączyć, nie pojawił się plik aspnet_wp.exe. Każdy pomysł, dlaczego? –

0

jeśli używasz NUnit trzeba zrobić następujące

początku NUnit z DLL, który chcesz przetestować. następnie w Visual Studio przejdź do Narzędzia -> Dołącz do procesu

wybrać swój proces NUnit i kliknij przycisk „Dołącz”, a następnie będzie ona zatrzymać we wszystkich przerwań

bawić :-)

0

Oficjalna Microsoft workaround/kludge/zomg-I-can't-believe-they-can't-be-arsed-to-provide-this-after-4-years dla MSTEST w VS2010, VS2008 i VS2005 polega na dodaniu System.Diagnostics.Debugger.Break() do testu urządzenia, od którego chcesz rozpocząć debugowanie. Działa to dla wszystkich projektów z symbolami debugowania, do których odwołuje się projekt testów jednostkowych.

Środowisko wykonawcze .NET wyświetli monit o przerzucenie do trybu debugowania (lub zamknięcie programu testowego jednostki wykonawczej lub zignorowanie linii debugowania) i (czasami) zezwolenie na użycie instancji Visual Studio, która uruchomiła test jednostki do Zrób tak. Zawsze możesz debugować z nowej instancji VS. Po trafieniu tej linii System.Diagnostics.Debugger.Break() wszystkie pozostałe punkty zatrzymania będą aktywne i trafione (zakładając, że znajdują się w stosie wykonania).

1

W moim przypadku System.Diagnostics.Debugger.Break() nie kończy się na metodzie testowania.

Powiązane problemy