2

当我unittest在 Python 中运行 a 时,我想访问测试所用的时间(不是每个单独的测试用例,而是整个测试)。这显示为结果的一部分。除了解析结果字符串之外,还有其他方法吗?

4

1 回答 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 回答