Вы получаете дополнительные «тесты Ran 0» по той же причине, что print(print("asdf"))
печатает дополнительные None
: вы выпускаете две команды тестирования.
Ваш скрипт runner.py
загружает тесты из других файлов и запускает их. Если вы просто сказали Python запустить скрипт (python runner.py
), вы бы не получили лишний дополнительный вывод.
Вместо того, чтобы рассказывать Python о запуске скрипта, вы сказали модулю unittest загрузить и запустить все тесты с runner.py
. Как побочный эффект, он управляет телом runner.py
, запуская те тесты, которые вы хотели. unittest
затем загружает и запускает все 0 тестов, содержащихся в runner.py
, потому что вы сказали ему.