Запуск теста с tox на основе ключевого слова

Я использую pytest с tox. Я могу запустить некоторые из моих тестов с таким ключевым словом:

pytest -k <keyword> path/to/tests

Теперь было бы действительно удобно иметь возможность делать это также с помощью tox, поскольку среда там чистая и можно тестировать разные версии python. Однако ближайшая вещь, которую я нашел:

tox -- path/to/tests/test_very_specific_name.py:TestClass.test_func

Это непросто набрать, поэтому я лучше просто запустил tox без аргументов и подождал 2 минуты, пока все не завершится.

Есть ли способ запускать одиночные тесты на основе ключевых слов с tox? Я пытался:

tox -- -k <keyword>

Это приводит к огромному списку ошибок импорта. Кажется, я не могу найти ни одного из моих локальных включений. Это должно работать?


person Leonidaz0r    schedule 25.01.2018    source источник
comment
tox не интерпретирует аргументы после -- - он просто передает как {posargs}. Вы должны показать нам свой tox.ini, чтобы мы увидели, как вы используете {posargs}.   -  person phd    schedule 25.01.2018
comment
Ах, спасибо, это была проблема. Я неправильно использовал {posargs}!   -  person Leonidaz0r    schedule 27.01.2018


Ответы (1)


Я понял это благодаря комментарию доктора философии.

Все, что указано в командной строке после - можно использовать в tox.ini как {posargs}. Я использовал это неправильно. В моем tox.ini теперь есть такая строка:

commands = py.test {posargs} <test_folder>

Теперь он отлично работает с:

tox -- -k <keyword>

person Leonidaz0r    schedule 27.01.2018