我最近遇到了有关在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/