根据维基百科 https://en.wikipedia.org/wiki/Unit_testing#Description和各种articles https://techbeacon.com/devops/6-best-practices-integration-testing-continuous-integration最佳实践是将测试分为单元测试(首先运行)和集成测试(第二次运行),其中单元测试通常非常快,应该在 CI 环境中的每个构建中运行,但是集成测试需要更长的时间来运行,并且应该更多的是日常跑步。
有没有办法在 pytest 中划分这些?大多数项目似乎没有多个测试文件夹,所以有没有办法确保我根据情况(CI 与每日构建)只运行单元、集成或两者?在计算测试覆盖率时,我假设我必须运行两者。
我是否以正确的方式尝试将测试分为这些类别?有没有一个很好的例子来说明一个项目已经做到了这一点?
你也可以结构上独立的单元测试和集成测试到特定目录。这是来自 A. Shaw 的示例文件结构article https://realpython.com/python-testing/#writing-integration-tests Python 测试入门:
通过结构性方法,您可以:
- 不需要手动标记各种测试的属性或
@pytest.mark
.
- 不限于特定的测试运行程序。请参阅下面的示例。
Examples
在这里,我们仅在集成测试上运行各种测试运行程序。查看示例project/
上图目录。
With unittest
来自标准库:
λ python -m unittest discover -s tests/integration
With nose
:
λ nose tests/integration
With pytest https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests:
λ pytest tests/integration
显式调用测试运行器tests/
运行所有测试的目录:
λ pytest tests/
或者,许多测试运行程序都有自动测试发现机制,可以在子目录中查找测试。
λ cd ..
λ pytest project/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)