У меня есть файл под названием test_web.py, содержащий класс TestWeb и множество методов с именем test_something ().
Я могу запустить каждый тест в классе так:
$ 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
...
Но я не могу проводить отдельные тесты. Они дают мне ошибку «Нет такого теста» при запуске в том же PWD:
$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
Что здесь могло быть не так?
Ответы:
Вы должны указать это так:,
nosetests <file>:<Test_Case>.<test_method>
илиСм. Документацию
источник
Вы также можете указать модуль:
источник
nosetests
или что-то еще, но этот синтаксис не работает. Что действительно работает, так это:, чтоnosetests tests/test_integration:IntegrationTests.test_user_search_returns_users
означает - справочные файлы как файлы, а не модули Python, с использованием,/
а не.
tests
не является модулем в вашей настройке?__init__.py
вtests
каталоге. Отлично сработано! СпасибоУказание имен в командной строке, как предполагают другие ответы, работает и полезно. Однако, когда я пишу тесты, я часто обнаруживаю, что хочу запустить только тот тест, над которым я работаю, и имена, которые мне придется писать в командной строке, становятся довольно длинными и громоздкими для написания. . В таком случае я предпочитаю использовать собственный декоратор и флаг.
Я определяю
wipd
(«декоратор незавершенного производства») так:Это определяет декоратор,
@wipd
который будет устанавливатьwip
атрибут на объекты, которые он украшает. Например:Затем
-a wip
можно использовать в командной строке, чтобы сузить выполнение теста до тех, которые отмечены значком@wipd
.Обратите внимание на имена ...
Я использую имя
@wipd
декоратора,@wip
чтобы избежать проблем такого рода:import
Сделаетwip
декоратор членом класса , и все тесты в классе будут выбраны. Вattrib
проверяют вставные родительский класс методы испытания , чтобы увидеть , если атрибут выбран , существует также и атрибуты, которые создаются и испытанныеattrib
не существуют в отделенном пространстве. Итак, если вы тестируете,-a foo
а ваш класс содержитfoo = "platypus"
, тогда все тесты в классе будут выбраны плагином.источник
Чтобы запустить несколько конкретных тестов, вы можете просто добавить их в командную строку, разделив их пробелом.
источник
В моих тестах указание тестов с именами модулей не работает
Вы должны указать фактический путь к
.py
:Это с
nose==1.3.7
источник
Моим требованием было запустить один тест в тестовом файле, который находился в другом каталоге Windows - это было сделано из командной строки anaconda следующим образом:
провела тесты от:
но test_MyTestFile.py и methodsFile.py были в:
запустить единый тест, включая путь с кавычками следующим образом :
test_MyTestFile.py выглядел так:
methodFile.py выглядел так:
источник