如何记录我的测试,仅记录我的测试?
我用Sphinx记录我的单元测试
我的设置如下:
class MyTestWrapper1(unittest.Testcase)
def test_general_setup()
class MyTestWrapper2(MyTestWrapper1)
def test_general_tear_down()
class TheUsedTest1(MyTestWrapper2)
def test_specific_test()
正如我们所看到的,父级是Unittest.TestCase,所有都是由usedtest1派生的
现在我将记录类TheUsedTest1
我希望在HTML输出中显示所有以test_
开头的成员函数
为了存档,我使用了选项:inherited-members:
,它实际上显示了所有test_*
成员。但它也显示unittest中的所有其他成员函数
.. automodule:: TheUsedTes1
:members:
:inherited-members:
我尝试将以下代码片段添加到conf.py中。它应该跳过特殊部分
def maybe_skip_member(app, what, name: str, obj, skip, options):
print(name, file=sys.stderr, end='')
if name.startswith('test_'):
print(".. OK", file=sys.stderr)
return False
else:
print(".. nope", file=sys.stderr)
return True
def setup(app):
app.connect('autodoc-skip-member', maybe_skip_member)
但它并没有像预期的那样起作用。如果每个被迭代的对象不是以test_
开头,那么它将被杀死。然而,如果迭代在TheUsedTest1
上运行,它将被终止,并且任何成员函数都不受尊重。因此,它永远不会到达应该记录的成员
我尚未对此进行测试,但您可以尝试检查要跳过的对象的类型:
编辑:更改为仅检查类-否则所有dunder方法和更多属性也将列出
相关问题 更多 >
编程相关推荐