相关疑难解决方法(0)

使用doctests,coverage和parallelism进行Python测试发现

......还有一匹小马!不,真的.我正在寻找一种方法来组织"正常工作"的测试.大多数事情都有效,但并非所有部分都适合.所以这就是我想要的:

  • 自动发现测试.这包括doctests.请注意,doctests的总和不得显示为单个测试.(即不是py.test --doctest-modules所做的)
  • 能够并行运行测试.(像xdist中的py.test -n之类的东西)
  • 生成覆盖率报告.
  • 做好python setup.py test工作.

我目前的方法涉及tests目录和load_tests协议.包含的所有文件都命名为test_*.py.python -m unittest discover如果我test_doctests.py使用以下内容创建文件,这只会起作用.

import doctest
import mymodule1, mymodule2
def load_tests(loader, tests, ignore):
    tests.addTests(doctest.DocTestSuite(mymodule1))
    tests.addTests(doctest.DocTestSuite(mymodule2))
    return tests
Run Code Online (Sandbox Code Playgroud)

这种方法也有可以使用setuptools和供应的好处setup(test_suite="unittest2.collector").

然而,这种方法存在一些问题.

  • coverage.py希望运行一个脚本.所以我不能在这里使用unittest2发现.
  • py.test不运行load_tests函数,因此它找不到doctests而且--doctest-modules选项是crap.
  • nosetests运行load_tests函数,但不提供任何参数.这看起来完全打破了鼻子的一面.

如何让事情比这更好或解决上面的一些问题?

python unit-testing discovery python-coverage

7
推荐指数
1
解决办法
1334
查看次数

标签 统计

discovery ×1

python ×1

python-coverage ×1

unit-testing ×1