2012-07-20 138 views
3
class ATestCase(unittest.TestCase): 
     def test_A ... 
     def test_B ... 
     def test_C ... 

的单元测试输出包括时间戳测试单元测试

test_A ... 
    test_B ... 
    test_C ... 

我怎样才能获得时间戳的测试名称前面?即我想看看

12:15:32 test_A ... 
    12:15:33 test_B ... 
    12:16:45 test_C ... 

最明显的方法(设置(),运行...()等),无论是放置时间戳测试名后,得忍受它们放在一起。

(这是有关python 2.5)

解决:

class MyTextTestRunner(unittest.TextTestRunner): 
    def _makeResult(self): 
     print >>stderr, _now(), ' ', 
     return super(MyTextTestRunner,self)._makeResult() 

更新: 这仅是一个部分解决方案。它只输出每个TestCase中第一次测试的时间戳。 (在该示例中为test_A)。

+0

你可以子类TestRunner – 2012-07-21 13:07:56

+0

它实际上是TextTestRunner。覆盖_makeResult的作品。 – Underhill 2012-07-24 16:11:27

+2

您可以将您的解决方案作为答案发布并接受它吗?否则,问题将继续出现在“未答复”选项卡中。 – Lenna 2012-07-25 05:24:28

回答

0

您是否考虑过使用装饰器来测试您的测试方法?

你可以装饰方法本身或继承的方法。

类似于this