Skip to main content
 首页 » 编程设计

python之从单元测试中的结果访问运行时

2025年05月04日8jpfss

当我在 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 格式化语句,因此您可以毫无风险地解析它。