Таким образом, причина, по которой это не сработало, была из-за довольно очевидной, но глупой ошибки с моей стороны ?.
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
, поскольку это было в моей истории оболочки вместо того, чтобы вводить полную команду, что и вызвало эту путаницу.