单元测试不是 运行 使用 python -m unittest 命令

Unittests not run with python -m unittest command

我有这样的结构

app/
    __init__.py
    phonebook.py
    test_phonebook.py

app 目录中,我可以 运行 在终端中使用 python test_phonebook.py

进行测试

但是为什么当我在 app 目录中进入 python -m unittest 时测试没有 运行? 我看到 0 次测试 运行

的消息

如果您想手动 运行 多个 test_*.py 文件,您必须创建 unittest.TestLoader 到 select 测试和 运行 unittest.TestRunner.

例如,您可以将 __main__.py 添加到您的应用程序

import unittest
import os
def run(verbosity=2):
    suite = unittest.TestLoader().discover(os.path.dirname(__file__))
    unittest.TextTestRunner(verbosity=verbosity).run(suite)
run()

并使用

启动它
$>python -m app

因此它会在 app 中发现所有测试并启动它们。