我最近遇到了有关在Python中组合单元测试和doctest的问题。我以其他方式解决了这个问题,但是我仍然对此有疑问。

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

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

最佳答案

doctest.OutputChecker.check_output()

关于python - 在Python单元测试中使用doctest“结果解析器”吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/990500/

10-13 03:38