我无法通过doctest测试我的模块类方法。
我的模块看起来像这样:
simplemod
├── A.py
└── __init__.py
A.py
包含:
class A:
def method(self):
"""This is a test
>>> True
False
"""
pass
(所以测试应该失败)
__init__.py
包含
from .A import A
__test__ = {'A': A}
然后我跑
>>> import doctest, simplemod
>>> doctest.testmod(simplemod)
TestResults(failed=0, attempted=0)
为什么不进行doctest测试A.method
?
答案 0 :(得分:0)
我发现了原因。
doctest尝试检测哪些测试不属于测试模块,并且不运行它们。这可以防止运行依赖项的所有测试。
在这里,我的doctest属于simplemod.A
,而我正在测试simplemod
。
来自the doctest documentation about testing complex packages。
将A.py
重命名为a.py
,并将__init__.py
替换为
from . import a
A = a.A
def load_tests(loader, tests, ignore):
import unittest
import doctest
tests.addTests(doctest.DocTestSuite(a))
return tests
然后您可以使用简单的
运行测试 $ python -m unittest
在父文件夹中。