在Python的单元测试中使用doctest“结果解析器”?

时间:2009-06-13 10:46:54

标签: python unit-testing testing documentation doctest

我最近遇到了在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使用一些启发式方法来比较输出,例如省略号。

有人会提出想法或建议吗?

1 个答案:

答案 0 :(得分:2)