Возможно, вы не понимали, что коды ниже __name__ == "__main__"
никогда не вызывались вашим тестовым кодом
result = runner.invoke(test.say, ['--text=blablabla'])
Даже если вы измените «test.py», как этот, ваш тест не будет жаловаться.
if __name__ == "__main__":
raise RuntimeError("Something is wrong")
say()
Причина в том, что __name__ == "__main__"
будет ложным, если импортирован файл модуля "test.py". Поэтому любые коды внутри предложения if
будут игнорироваться.
Чтобы получить 100% охват, введите команду напрямую
$ coverage run test.py --text=blablabla
blablabla
$ coverage report
Name Stmts Miss Cover
-----------------------------
test.py 6 0 100%