首页 > 后端开发 > Python教程 > 如何在 Python 中从单独的测试目录高效运行单元测试?

如何在 Python 中从单独的测试目录高效运行单元测试?

Linda Hamilton
发布: 2024-11-27 03:04:13
原创
794 人浏览过

How to Efficiently Run Unit Tests from a Separate Test Directory in Python?

如何在通用测试目录结构中运行单元测试

在 Python 中,通常的做法是在单独的测试目录中组织单元测试。然而,这提出了如何有效地执行这些测试的问题。

问题

当尝试从测试目录中运行 python test_antigravity.py 时,导入由于模块不在路径上,反重力模块发生故障。修改 PYTHONPATH 或使用其他搜索路径技巧可能是可行的,但它们缺乏简单性,特别是对于只想验证测试结果的用户。

解决方案

推荐的方法是使用unittest命令行界面。它的 TestLoader 类将必要的目录添加到 sys.path 中,解决了路径问题。

例如,在这样的目录结构中:

new_project
├── antigravity.py
└── test_antigravity.py
登录后复制

您可以使用以下命令执行测试:

$ cd new_project
$ python -m unittest test_antigravity
登录后复制

对于像提供的目录结构:

new_project
├── antigravity
│   ├── __init__.py
│   └── antigravity.py
└── test
    ├── __init__.py
    └── test_antigravity.py
登录后复制

您可以实现通过将反重力和测试声明为带有 __init__.py 文件的包来实现类似的功能。在测试模块中,您可以照常导入反重力包及其模块。

运行特定测试

运行单个测试模块,例如 test_antigravity.py :

$ cd new_project
$ python -m unittest test.test_antigravity
登录后复制

您还可以运行单独的测试用例或方法:

$ python -m unittest test.test_antigravity.GravityTestCase
$ python -m unittest test.test_antigravity.GravityTestCase.test_method
登录后复制

运行所有测试

您可以使用测试发现来自动运行所有测试。这要求测试模块和包命名为 test*.py (可通过 -p 或 --pattern 标志自定义):

$ cd new_project
$ python -m unittest discover
登录后复制

对于喜欢简单的用户,您可以指示他们运行以下命令命令:

To run the unit tests, do:
$ python -m unittest discover
登录后复制

以上是如何在 Python 中从单独的测试目录高效运行单元测试?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板