当我在 Python 中运行 unittest
时,我想访问测试所花费的时间(不是每个单独的测试用例,而是整个测试)。这显示为结果的一部分。除了解析结果字符串之外,还有其他方法可以做到这一点吗?
最佳答案
遗憾的是,不,您不能直接访问测试时间。至少在不修改一些 unittest
类的情况下。
那个时间是在TextTestRunner.run中计算的并且没有保存为类的成员,而是作为打印输出流式传输:
self.stream.writeln("Ran %d test%s in %.3fs" %
(run, run != 1 and "s" or "", timeTaken))
如果您覆盖 TextTestRunner.run
和在 unittest.main
中调用它的方法,那么您可以访问 timeTaken
变量.
只解析输出文本会更容易。
此外,由于您现在可以看到用于编写该行的 timeTaken
格式化语句,因此您可以毫无风险地解析它。
关于python - 从单元测试中的结果访问运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153572/