Mam aplikację Pylons 1.0 z kilkoma testami w katalogu test / Function. Otrzymuję dziwne wyniki testów i chcę przeprowadzić tylko jeden test. Dokumentacja nosa mówi, że powinienem być w stanie przekazać nazwę testu w wierszu poleceń, ale otrzymuję ImportErrors bez względu na to, co zrobię
Na przykład:
nosetests -x -s sometestname
Daje:
Traceback (most recent call last):
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
module = resolve_name(addr.module)
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Otrzymuję ten sam błąd dla
nosetests -x -s appname.tests.functional.testcontroller
Jaka jest prawidłowa składnia?
appname.tests.functional.test_controller.name_of_test_method
.module.path:ClassNameInFile.method_name
, czyli dwukropka oddzielającego ścieżkę modułu / pliku od obiektów w pliku.module.path
jest względną ścieżką do pliku (np.my_tests.py:ClassNameInFile.method_name
), A nie ścieżką, którejimport
Dla mnie przy użyciu Nosetests 1.3.0 te warianty działają (ale upewnij się, że masz
__init__.py
w folderze testy):Zwróć uwagę, że pojedynczy dwukropek między nazwą modułu a nazwą klasy.
źródło
Muszę dodać rozszerzenie pliku „.py”, czyli
Może to dlatego, że nie mam żadnych klas w pliku. Bez
.py
nosa narzekał:I to chociaż mam
__init__.py
w folderze/path_to/
.źródło
Napisałem ten mały skrypt na podstawie poprzednich odpowiedzi:
źródło
Poniższe działały dla mnie dobrze:
Zwróć uwagę, że moje testy nie odbywały się w klasie. Metody testowe znajdowały się w jednym pliku.
źródło