Почему использование подробного флага необходимо для выполнения указанного c unittest? - PullRequest
0 голосов
/ 12 марта 2020

Из вопроса о при запуске одного теста через командную строку, когда тесты находятся в папке одного уровня , ответ предлагает использовать параметр -v вместе с именем модуля и тестом. имя для запуска указанного c теста.

Почему опция -v работает? Указание имени модуля и имени теста имеет смысл, поскольку оно соответствует unittest documnetation , и, очевидно, вам необходимо указать, какой тест нужно запустить. Однако, насколько я могу судить, опция -v соответствует подробному выводу, который не должен изменять тесты, которые выполняет модуль unittest.

Заранее извиняюсь, если я что-то упустил здесь очевидное.

1 Ответ

0 голосов
/ 12 марта 2020

Таким образом, причина, по которой это не сработало, была из-за довольно очевидной, но глупой ошибки с моей стороны ?.

tldr; Используйте полную командную строку для запуска тестов (например, python3 -m unittest tests.module_name.TestClass.test_func) или, если вы используете функцию bash, убедитесь, что функция принимает другие аргументы.

Я настроил bash функцию с именем run_tests для запуска юнит-тестов, и я пытался указать имя модуля и имя теста после вызова этого метода. Т.е. у меня было следующее в .bash_profile:

run_tests ()
{
    python3 -m unittest
}

и на терминале я сделал:

run_tests tests.module_name.TestClass.test_func

Так как функция bash не была настроена для приема аргументов, указали c тест, который я хотел выполнить, на самом деле не передавался в качестве аргумента unittest.

Очевидно, что использование -v не имеет значения, если вы используете функцию run_tests, чтобы попытаться запустить указанный c тест.

Когда я тестировал с опцией -v, я использовал полную команду python3 -m unittest -v tests.module_name.TestClass.test_func, поэтому я подумал, что опция -v заставила ее работать. Чтобы проверить, действительно ли работает опция -v, я был ленив и снова запустил run_tests tests.module_name.TestClass.test_func, поскольку это было в моей истории оболочки вместо того, чтобы вводить полную команду, что и вызвало эту путаницу.

...