从unittest中的结果访问运行时

时间:2013-08-09 18:46:36

标签: python unit-testing

当我在Python中运行unittest时,我想访问测试所用的时间(不是每个单独的测试用例,而是整个测试)。这将显示为结果的一部分。有没有办法做到这一点,而不仅仅是解析结果字符串?

1 个答案:

答案 0 :(得分: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格式化语句,因此您可以无风险地解析它。