Случайно я вызвал свои Python модульные тесты с помощью следующей команды:
coverage run -m tests.unit.Tokens
Это выполнило некоторый код и сообщило отчет о покрытии. Но на самом деле покрытие выглядело только как инициализация. Не было сообщений об ошибках и исключений.
После некоторого поиска и отладки я обнаружил, что пропустил имя пакета unittest
между -m
и моим модуль тестового набора. Таким образом, модуль «выполнено» не был unittest
с параметром tests.unit.Tokens
. Он непосредственно выполнил модуль объявления тестового набора.
Пример вызова:
coverage run -m tests.unit.Tokens
должен сообщить что-то вроде:
Module 'tests.unit.Tokens' needed to be loaded by Pythons `unittest`.
Use 'python3 -m unitest test.unit.Tokens'
Что я могу добавить / реализовать / перезаписать, поэтому при вызове модуля напрямую выдается сообщение об ошибке?
Я мог бы представить, что файл может выглядеть так, как мы используем в наших основных Python файлах :
if __name__ == "__main__":
# this is the entry point