使用标准测试目录结构运行单元测试
许多Python项目采用典型的目录结构,其中单元测试保存在单独的“测试”目录。这就提出了一个问题:如何有效地运行这些测试?
问题和问题
直接从“test”目录运行 test_antigravity.py 将失败,因为反重力模块不在系统路径上。修改 PYTHONPATH 和类似的路径相关技巧可能不是最佳解决方案。将测试文件复制粘贴到不同的目录中似乎效率很低。
解决方案:使用unittest命令行界面
最推荐的方法是使用unittest命令线接口。它会自动将当前目录添加到 sys.path,从而允许无缝导入被测模块。
对于如下结构:
new_project └── test_antigravity.py
只需运行:
$ python -m unittest test_antigravity
对于结构例如:
new_project ├── antigravity │ └── antigravity.py └── test ├── test_antigravity.py
您可以运行单个测试模块:
$ python -m unittest test.test_antigravity
运行单个测试:
$ python -m unittest test.test_antigravity.GravityTestCase
运行单个测试方法:
$ python -m unittest test.test_antigravity.GravityTestCase.test_method
运行全部测试:
$ python -m unittest discover $ # Also works without discover for Python 3 $ # as suggested by Burrito in the comments $ python -m unittest
这种方法方便用户执行单元测试,只需按照说明:“要运行单元测试,执行 X。”
以上是如何从 Python 中的标准'test”目录有效运行单元测试?的详细内容。更多信息请关注PHP中文网其他相关文章!