我在名为test2.txt
的文件中包含以下内容。
>>> def faulty():
... yield 5
... return 7
Traceback(most recent call last):
SyntaxError: 'return' with argument inside generator(<doctest test.txt[0]>,line 3)
我使用python -m test2.txt
调用测试运行。以下结果完全超出了我的预期。
我的想法是测试应该是成功的,因为我已经在我的test2.txt
文件中写了预期的输出,它几乎与我从控制台输出中获得的输出相匹配。我尝试添加'File "G:\"'.... line
?但测试仍然失败。
答案 0 :(得分:9)
doctest对预期异常的格式非常谨慎。你错过了一个空间:
Traceback(most recent call last):
应为Traceback (most recent call last):
此外,这仍然会失败,因为您的回溯消息过于具体(并且还有不正确的空格)!使用ELLIPSIS
或IGNORE_EXCEPTION_DETAIL
标志进行doctest,使doctest对匹配异常不那么挑剔,如下所示:
>>> def faulty(): # doctest: +IGNORE_EXCEPTION_DETAIL
... yield 5
... return 7
Traceback (most recent call last):
SyntaxError: 'return' with argument inside generator (...)
(ELLIPSIS
也可以在这里工作)