2011-07-07 11 views
5

Mam kilka testów w tej samej przestrzeni nazw. Nie używałem konwencji nazewnictwa, jak Test1, Test2, ... itd. Dla każdego z moich testów jednostkowych. Tak więc teraz, gdy uruchamiam wszystkie testy, nie działają one w takiej kolejności, w jakiej chcę. Czy istnieje sposób na zamówienie testów?Czy można określić kolejność testów w Visual Studio C#?

Moje testy nie zawiedzie, jeśli nie wykonam ich w określonej kolejności. Jednak chciałem tylko wykonać je w kolejności, w jakiej znajdują się w moim arkuszu kalkulacyjnym.

+1

Otrzymasz wiele komentarzy mówiących, że nie powinno mieć znaczenia, czy są to właściwe testy jednostkowe! –

+8

Nie powinno mieć znaczenia, czy są właściwe ... –

+1

Zgadzam się z właściwym pojęciem testu jednostkowego, jednak w celu debugowania dużej liczby testów może być przydatne, aby móc zarejestrować, która kolejność testów przebiegła. pozwoliłoby na debugowanie testów, aby były prawidłowe. – demongolem

Odpowiedz

5

Odpowiedź, której szukasz, brzmi: tak. Chociaż zgadzam się z zasadami izolacji, istnieją scenariusze, w których należy przetestować sekwencję zdarzeń. W VS 2010 można utworzyć nowy "Zamówiony test", aby zestawić i przetestować zestaw testów sekwencyjnie.

+1

@GlennFerrieLive Przykładowy kod lub link do tego, co faktycznie jest "zamówionym testem", byłoby wspaniałe! – iGanja

+0

@iGanja - Oto próbka. Zapakowałem i umieściłem na moim Blob Store - http://j.mp/so-tests-sample –

8

Twoje testy nie powinny być zależne od zamówienia; która łamie koncepcję nieinterplikacji testowej. Brak możliwości zamówienia testów w Visual Studio jest odzwierciedleniem tej koncepcji.

+5

Następnie określ, w jaki sposób istnieje typ testu o nazwie Zamówiony test, w którym wybierasz, które jednostki mają zostać uruchomione i w jakiej kolejności. –

2

Visual Studio ma wbudowany szablon dla zamówionych testów (zakładając, że korzystasz ze środowiska MSTest). Jeśli otworzysz menu kontekstowe w projekcie testowym, będzie ono dostępne w menu "Nowy test" lub bezpośrednio jako "Test uporządkowany". Nigdy wcześniej tego nie użyłem, ale zakładam, że twoje testy są nadal wykonywane w nieokreślonej kolejności, jeśli wykonujesz wszystkie testy w rozwiązaniu.

4

Och, człowieku, naruszasz jedną z głównych zasad testowania jednostek - "Izolacja".

Test nigdy nie powinien zawierać żadnych zleceń zależnych. Nie czekaj na odpowiedź, idź i zreorganizuj testy, aby być naprawdę niezależnym od innych. Uwierzcie mi, lepiej to teraz zrobić :)

+2

Dzięki! Moje testy nie są zależne, ale chciałem, aby były wykonywane w kolejności, w jakiej znajdują się w moim arkuszu kalkulacyjnym. – Maya

+0

ok) ale w każdym razie nie powinieneś tego robić ...) –

+0

Wiem, że to pytanie jest trochę stare, ale mam ten sam problem. Mam dwa niezależne testy, które komunikują się z bazą danych, nad którą nie mam kontroli. Do prawidłowego uruchomienia testu muszę przeprowadzić test aktywacyjny przed testem dezaktywacji. Czy jest na to jakiś sposób? Czy to również narusza "główne" zasady testowania jednostkowego izolacji? Ponieważ chciałem użyć testów jednostkowych do sprawdzenia, czy moja komunikacja z serwerem bazy danych działa poprawnie, nie chciałem hostować własnej bazy testowej tylko dla testów jednostkowych. –

Powiązane problemy