我正在尝试实现一种完整而干净的测试 python 包的方法,一种适合以下要求的方法:
- 在干净的机器上执行测试而不设置它们(virtualenv)
- 从多个平台收集结果
- 从多个 python 解释器收集结果
- 代码覆盖率(将多次执行的结果合并到一个报告中)
- 能够生成 xml 代码覆盖率报告,以便构建系统可以跟踪这种变化随时间的变化。
- 能够启用基于平台的禁用测试
- 在测试之前运行几个命令,例如 pep8 或 autopep8
- 并行运行测试。
我用了几种方法:nose + pytest
,tox + pytest
但最近发现pytest
应该可以做大部分的东西。
主要问题是我无法找到关于何时使用一种或另一种方法更好的明确比较。
有人可以解释这些并给出这些配置的一些用例或限制吗?...只是为了清楚说明您何时采用一种或另一种方法。
最后,我确实想要这些选项:
quicktest
- 在本地运行测试,每次提交前必须这样做fulltest
- 完整的测试,在所有可用平台上运行它们,这是发布新版本之前的必备条件