Mam plik o nazwie test_web.py zawierający klasę TestWeb i wiele metod o nazwie test_something ().
Mogę przeprowadzić każdy test w klasie w następujący sposób:
$ nosetests test_web.py
...
======================================================================
FAIL: checkout test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/me/path/here/test_web.py", line 187, in test_checkout
...
Ale wydaje mi się, że nie mogę przeprowadzać indywidualnych testów. Wyświetlają mi się błędy „Nie ma takiego testu”, gdy są uruchamiane z tym samym PWD:
$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
Co tu może być nie tak?
Odpowiedzi:
Musisz to określić w ten sposób:
nosetests <file>:<Test_Case>.<test_method>
lubZobacz dokumentację
źródło
Możesz również określić moduł:
źródło
nosetests
czy co, ale ta składnia zawodzi. To, co działa, tonosetests tests/test_integration:IntegrationTests.test_user_search_returns_users
/
.
tests
nie jesteś modułem w konfiguracji?__init__.py
wtests
katalogu. Dobra robota! DziękiPodawanie nazw w wierszu poleceń, tak jak sugerują inne odpowiedzi, działa i jest przydatne. Jednak kiedy jestem w trakcie pisania testów, często stwierdzam, że chcę uruchomić tylko test, nad którym pracuję, a nazwy, które musiałbym pisać w wierszu poleceń, stają się dość długie i kłopotliwe w pisaniu . W takim przypadku wolę użyć niestandardowego dekoratora i flagi.
Definiuję
wipd
("dekorator w toku") w ten sposób:Definiuje dekorator,
@wipd
który ustawiwip
atrybut na obiektach, które zdobi. Na przykład:Następnie
-a wip
można użyć w wierszu poleceń, aby zawęzić wykonanie testu do tych oznaczonych@wipd
.Uwaga dotycząca nazw ...
Używam nazwy
@wipd
dla dekoratora, zamiast@wip
uniknąć tego rodzaju problemu:Dzięki
import
temuwip
dekorator stanie się członkiem klasy , a wszystkie testy w tej klasie zostaną wybrane. Teattrib
kontrole plugin klasa dominująca metody testowej, aby sprawdzić, czy wybrany atrybut istnieje tam i atrybuty, które są tworzone i testowane przezattrib
nie istnieją w wydzielonej przestrzeni. Więc jeśli testujesz z,-a foo
a twoja klasa zawierafoo = "platypus"
, wszystkie testy w klasie zostaną wybrane przez wtyczkę.źródło
Aby uruchomić wiele określonych testów, wystarczy dodać je do wiersza poleceń, oddzielając je spacjami.
źródło
W moich testach określanie testów z nazwami modułów nie działa
Musisz określić rzeczywistą ścieżkę do
.py
:To z
nose==1.3.7
źródło
Moim wymaganiem było uruchomienie pojedynczego testu w pliku testowym, który znajdował się w innym katalogu systemu Windows - zostało to zrobione z wiersza polecenia anaconda w następujący sposób:
prowadzono testy z:
ale test_MyTestFile.py i methodsFile.py znajdowały się w:
uruchom pojedynczy test, dołączając ścieżkę w cudzysłowie w następujący sposób:
test_MyTestFile.py wyglądał tak:
MethodFile.py wyglądała następująco:
źródło