Hel*_*hne 7 python unit-testing discovery python-coverage
......还有一匹小马!不,真的.我正在寻找一种方法来组织"正常工作"的测试.大多数事情都有效,但并非所有部分都适合.所以这就是我想要的:
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").
然而,这种方法存在一些问题.
--doctest-modules选项是crap.load_tests函数,但不提供任何参数.这看起来完全打破了鼻子的一面.如何让事情比这更好或解决上面的一些问题?
我用鼻子,当我遇到同样的问题时发现你的问题。
我最终得到的结果并不漂亮,但它确实运行了测试。
import doctest
import mymodule1, mymodule2
def test_mymodule1():
assert doctest.testmod(mymodule1, raise_on_error=True)
def test_mymodule2():
assert doctest.testmod(mymodule2, raise_on_error=True)
Run Code Online (Sandbox Code Playgroud)
不幸的是,它将模块中的所有文档测试作为单个测试运行。但如果出现问题,至少我知道从哪里开始寻找。失败会导致 DocTestFailure,并显示一条有用的消息:
DocTestFailure: <DocTest mymodule1.myfunc from /path/to/mymodule1.py:63 (4 examples)>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |