2016-01-04 14 views
6

Mam kilka tuzinów modułów pakietu testów testowych dla aplikacji Erlang, którą napisałem. Wszystkie testy przechodzą, ale wydaje mi się, że zestawy testów są bardzo kruche. Zmiana kolejności testów powoduje, że niektóre z nich zawodzą. Nie przeczytałem dependencies chapter in the Common Test documentation i często zakładałem stan aplikacji w testach jednostkowych. Teraz chciałbym, aby mój zestaw testów był bardziej solidny.Czy możliwe jest uruchamianie testów testowych Common Test w losowej kolejności?

Randomize Zamówienie testu?

Pochodzę z Ruby, gdzie Rspec uruchamia testy w losowej kolejności, chciałbym mieć tę samą funkcjonalność w Common Test. Czy ktoś wie, czy istnieje sposób na losowanie kolejności testu w Common Test? W dokumentach nie widziałem niczego na temat randomizacji kolejności testowania.

Losuj wartości zwracanych wartości od all/0 i groups/0?

Myślałem również o zmianie wyjścia z callbacków all/0 i groups/0. Teraz właśnie zwracają zakodowane listy. Być może mógłbym przypadkowo uporządkować elementy i kazać je uruchamiać za każdym razem w różnych zamówieniach? Czy ktokolwiek ma jakieś doświadczenie w randomizowaniu kolejności testowania przez zmianę wartości zwracanych przez wywołania zwrotne w Common Test? Potrzebowałbym również sposobu na ponowne wykonanie testów w kolejności, która spowodowała ich niepowodzenie, tak jak Rspec's --seed flag.

Z góry dziękuję!

Odpowiedz

8

Korzystanie shuffle lub {shuffle, Seed} nieruchomość w definiowaniu grup testowych mogą być pomocne, w ten sposób:

groups() -> 
    [{group1, [shuffle], [test1, test2, test3]}, 
    {group2, [shuffle], [test1, test2, test3]}]. 

Jeśli shuffle jest określona, ​​przypadki w grupie będą realizowane w kolejności losowej. Istnieją dobre przykłady w oficjalnej dokumentacji this.

Powiązane problemy