2010-07-29 8 views
11

Podczas uruchamiania testów jednostkowych MSTEST w trybie debugowania wykonywanie zatrzymuje się przy każdym oczekiwanym wyjątku, który jest zgłaszany. Mój test wygląda jak ta metodaJak zapobiec oczekiwanym wyjątkom od przerwania uruchomienia testu debugowania?

[TestMethod()] 
[ExpectedException(typeof(ArgumentNullException))] 
public void ShouldThrowExceptionWhenPassingNull() 
{ 
    object data = null; 
    target.CheckNull(data); 
} 

cel wygląda następująco:

public void CheckNull(object data) 
{ 
    if (ReferenceEquals(null, data)) 
    { 
     throw new ArgumentNullException("data"); 
    } 
} // test run breaks here: ArgumentNullException was unhandled by user code 

Odpowiedz

7

Próbowałaś uruchomione testy przy użyciu ctrl-R ctrl-T zamiast ctrl-R T?

EDYTOWANIE Jeśli to nie jest skrót klawiaturowy, sprawdź link this. Można spróbować następujących jak zauważono tam:

  1. Disable "Break on użytkownika nieobsłużonych wyjątków" dla typów wyjątków ty jesteś napotykają tu (poprzez Debug -> Wyjątki)
  2. Disable „przerwa na użytkowników nieobsłużone wyjątki”dla wszystkich wyjątków (przez Debug -> wyjątkami)
  3. Disable "Just My Code"
+0

Nie używam skrótów klawiaturowych do uruchamiania testów, zamiast tego używam myszy. Przeczytałem artykuł i tylko mi to nie pomogło, ponieważ pokazuje różne skróty do uruchamiania z debugowaniem i bez debugowania. Chcę debugować, ale bez zatrzymywania się na oczekiwane wyjątki. –

+0

@Jader Dias - Zobacz ostatnią zmianę dla innego możliwego rozwiązania. – dcp

+0

wpłynie to również na nieoczekiwane wyjątki –

2

Sugestia dcp wygląda, jakby działała dla MSTEST, ale możesz rozważyć uzyskanie TestDriven.Net. Używam go jako testera prawie wyłącznie i nie mam tego problemu, klikając prawym przyciskiem myszy tryb "Uruchom testy w debugowaniu". Ponadto uważam, że jest to wygodniejsze niż wbudowany tester w prawie wszystkich okolicznościach.

1

CTRL + R A działa dla mnie bez zmiany żadnej opcji.

Myślę, że masz problem, ponieważ projekt testowy jest uruchomiony z przycisku Rozpocznij debugowanie (F5) na pasku narzędzi. Jeśli klikniesz zielony przycisk odtwarzania, zatrzymasz się w każdym wyjątku, nawet oczekiwanym.

Aby uruchomić wszystkie testy bez zatrzymywania się w każdym wyjątku, kliknij: Test -> Uruchom -> Wszystkie testy w roztworze lub użyj skrótu: CTRL + R, A

przy otwartym oknie wyników badań, CTRL + R, D działa również. W oknie wyników testu staje się jasne różnica między testami uruchamiania i testami debugowania.

Powiązane problemy