我喜欢doctest,但是当你需要复杂的参数时 在传递给函数之前设置它变得非常难以阅读.. 因此,您开始使用多行分配然后调用 你想测试的功能..然而,这种方法会 报告您有多个测试,而不是实际的 你有的测试..一个例子将说明我的意思..
def returnme(x):
"""
Returns what you pass
>>> y = (2, 3, 5, 7)
>>> returnme(y)
(2, 3, 5, 7)
"""
return x
在上面的代码片段中,只有一个测试,另一个只是一个 然而,变量赋值是报告的内容..
Trying: y = (2, 3, 5, 7) Expecting nothing ok Trying: returnme(y) Expecting: (2, 3, 5, 7) ok 2 tests in 2 items. 2 passed and 0 failed.
我看过记录的旗帜,肯定是我错过了什么......
答案 0 :(得分:5)
预先设置三个句点,表示您要继续当前行,如下所示:
def returnme(x):
"""
Returns what you pass
>>> y = (2, 3, 5, 7)
... returnme(y) # Note the difference here.
... # Another blank line ends this test.
(2, 3, 5, 7)
"""
return x
这应该可以解决问题。您可以阅读有关doctest如何解释单个测试的更多信息here。