运行 使用不同函数的文档测试

Running doctests using a different function

我写了一个模块,其中包含一些函数及其文档测试,我想 运行 这些测试是对其他人编写的同名函数进行的。

文档提供了以下代码片段,用于检索 mymodulesomefunction 的所有测试,然后以通常的方式 运行ning 它们(如 运行ning doctest.testmod()):

TESTS = doctest.DocTestFinder().find(mymodule.somefunction)
DTR = doctest.DocTestRunner(verbose=True)
for test in TESTS:
    print (test.name, '->', DTR.run(test))

但我不知道从这里到哪里才能在 theirmodule.somefunction 上进行这些测试 运行。我尝试将每个测试的 Example 对象中的 filename 字段从 mymodule 更改为 theirmodule,但无济于事。有谁知道如何做到这一点?

这可能不是最优雅的解决方案,但只需将我的文档字符串复制到脚本中的函数即可:

theirmodule.somefunction.__doc__ = mymodule.somefunction.__doc__

然后我只需要 运行 我在 theirmodule.somefunction 上的问题中的片段。