我最近遇到了在Python中组合单元测试和doctests的问题。我以其他方式解决了这个问题,但我仍然对它有疑问。
Python的doctest模块解析模块中的文档字符串,并在每行的开头运行“>>>”之后的命令,并将其输出与文档字符串中的输出进行比较。
我想知道我可以在需要时使用doctest模块实现的比较方法。我知道可以将测试套件中的doctest添加为测试用例,但在这里我想在一个测试用例中进行。
这是这样的:
class MyTest(TestCase):
def testIt(self):
# some codes like self.assertEqual(...)
output = StringIO()
with StdoutCollector(output):
# do something that uses stdout
# I want something like this:
doctest.compare_result(output.getvalue(), 'expected output')
# do more things
因为doctest使用一些启发式方法来比较输出,例如省略号。
有人会提出想法或建议吗?