W jaki sposób można tymczasowo wyłączyć poszczególne testy jednostkowe podczas korzystania z unittest
modułu w Pythonie?
python
python-unittest
coelhudo
źródło
źródło
@unittest.SkipTest
działa, a nie@unittest.skip
@unittest.skip
działa również dobrze.@unittest.skip
nie działa.Możesz użyć dekoratorów, aby wyłączyć test, który może opakować funkcję i uniemożliwić testowi jednostkowemu googletest lub python uruchomienie przypadku testowego.
Wynik:
źródło
Najnowsza wersja (2.7 - niewydana) obsługuje pomijanie / wyłączanie testów w ten sposób . Możesz po prostu pobrać ten moduł i użyć go w istniejącej instalacji Pythona. To prawdopodobnie zadziała.
Przed tym, użyłem do zmiany nazwy testów chciałem pominięte do
xtest_testname
odtest_testname
.Oto krótki skrypt elisp, który to zrobi. Mój elisp jest trochę zardzewiały, więc z góry przepraszam za wszelkie problemy. Niesprawdzone.
źródło
Wystarczy umieścić
@unittest.SkipTest
dekorator nad testem.źródło
unittest.skip
(bez powodu) daje mi błąd w Pythonie 2, ale nie w Pythonie 3.Po prostu zmieniam nazwę metody przypadku testowego z podkreśleniem: test_myfunc staje się _test_myfunc.
źródło
W docs 2,1 nie określisz zignorować lub pominąć metody.
Zazwyczaj jednak w razie potrzeby blokuję komentarz.
źródło
Koncentrując się na „tymczasowo wyłączonej” części pytania, najlepsza odpowiedź w pewnym stopniu zależy od przypadku użycia. Przypadek użycia, który mnie tu sprowadził, jest taki, że wykonuję programowanie sterowane testami na funkcji. W tym procesie sukcesywnie piszę testy i często używam punktów przerwania w funkcji do debugowania. Jeśli po prostu uruchamiam wszystkie testy za każdym razem, gdy uruchamiam test runner, w końcu zatrzymuję się w punktach przerwania testów, które już działają. Dodanie „pomiń” lub zmiana nazwy testu lub czegoś podobnego nie jest tym, czego chcę, ponieważ po zakończeniu pisania funkcji chcę, aby wszystkie testy zostały uruchomione. Gdybym użył „pomiń”, musiałbym cofnąć się i „cofnąć pomijanie”.
W moim przypadku rozwiązanie leży w module uruchamiającym testy, a nie w kodzie testowym. Używam pytest . Dzięki pytest łatwo jest określić pojedynczy test z wiersza poleceń:
(zamień czapki na swoje wartości).
Rozumiem, że to pytanie dotyczyło python-unitest. Nie używałem tego od dłuższego czasu. Nie zdziwiłbym się gdyby miał coś podobnego do pytest. Jeśli nie, możesz łatwo przejść do pytest. Nie musisz modyfikować swojego kodu. Po prostu zainstaluj go i zmień polecenie test runner.
Używam również PyCharm Pro. Na stronie, na której jest wyświetlany mój kod testu, obok definicji każdego testu znajduje się mała ikona. Mogę kliknąć tę ikonę i indywidualnie uruchomić ten test.
źródło