2012-01-20 25 views
12

Mój obecny projekt ma politykę 100% pokrycia kodu z jego testów jednostkowych. Nasza ciągła usługa integracji nie pozwoli programistom na przesyłanie kodu bez 100% pokrycia.Rozproszone testowanie jednostek i pokrycia kodu w Pythonie

Wraz z rozwojem projektu ma również czas na uruchomienie pełnego zestawu testów. Podczas gdy programiści zazwyczaj uruchamiają podzestaw testów istotnych dla kodu, który zmieniają, zwykle wykonają jeden końcowy pełny przebieg przed przesłaniem do CI, a sam serwer CI również uruchamia pełny zestaw testów.

Testy jednostkowe z natury są wysoce równoległe, ponieważ są samodzielne i bezpaństwowe od testu do testu. Zwracają tylko dwie części informacji: pass/fail i linie kodu. Wygląda na to, że mapowanie/redukcja rozwiązania sprawdzi się bardzo dobrze.

Czy istnieją frameworki testujące Pythona, które będą przeprowadzać testy na klastrze maszyn z pokryciem kodu i łączą wyniki po zakończeniu?

+0

Czy znalazłeś coś, co robi to, co chciałeś? –

+0

@ stair314 Niestety nie. Kupiliśmy trochę więcej czasu, optymalizując nasze testy jednostkowe i wycinając dużą ilość niepotrzebnej pracy. Dodaliśmy także komputery do naszego klastra CI, abyśmy mogli budować (i testować) równolegle, ale mimo wszystko wykonujemy wszystkie testy. Mam nadzieję, że w pewnym momencie będziemy w stanie skupić się na pewnym wysiłku na rzecz opracowania tego problemu. –

Odpowiedz

4

Nie znam żadnych frameworków testowych, które będą uruchamiały testy rozproszone na grupie komputerów, ale nos ma obsługę równoległych testów na tej samej maszynie przy użyciu multiprocessing.

Na minimum, które mogą być dobrym miejscem, aby rozpocząć tworzenie rozproszonej ramy testowania

1

Niezupełnie co patrzysz, ale najbliżej mogę przypomnieć pochodzi z grup Hadoop korzysta JUnit do testów z Hadoop . Oto mail. Jak wspomniano w wywiadzie pocztowym dla dokumentów gridunit.

Testowanie jednostek za pomocą Hadoop w sposób rozproszony jest bardzo interesujące. Wszelkie ramy wokół tego byłyby bardzo użyteczne, ale opracowanie ram nie powinno być bardzo trudne. Zainteresowanych daj mi znać.

4

Myślę, że nie ma ram, które pasują dokładnie do twoich potrzeb.

Wiem, że py.test ma wtyczkę xdist, która dodaje rozproszone executory testowe. Możesz go użyć do napisania swojej infrastruktury CI na wierzchu.

+0

Link nie działa. –

+0

https://pypi.python.org/pypi/pytest-xdist – Twirrim