当我unittest
在 Python 中运行 a 时,我想访问测试所用的时间(不是每个单独的测试用例,而是整个测试)。这显示为结果的一部分。除了解析结果字符串之外,还有其他方法吗?
问问题
129 次
1 回答
1
可悲的是,不,您不能直接访问测试时间。至少在不修改某些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
用于编写该行的格式化语句,因此您可以毫无风险地对其进行解析。
于 2013-08-09T20:40:34.377 回答