2014-08-27 106 views
0

我工作的一个小的脚本来运行python单元测试之后,我不喜欢这样写道:打印结果每个单元测试

def run_test(suite): 
    runner = unittest.TextTestRunner() 
    start = time.time() 
    result = runner.run(suite) 
    end = time.time() 
    log_test_results(result, str(end-start)) 

而在log_test_results我写出所有合格/不合格试验。问题在于,我必须等待测试套件完成才能查看是否有任何测试通过/失败。在TestCase内部的每个断言之后,是否有任何方法可以打印结果?

回答

0

您可以设置TextTestRunner的详细程度,然后在每个测试用例方法完成后,您将看到通过/失败结果。

runner = unittest.TextTestRunner(verbosity=2) 
+0

这几乎是我所期待的。但只是一个后续问题,所以我可以看看是否有其他方法可以做到这一点。比方说,我想将自己记录到自定义记录器中,有没有什么方法可以自己收集这些信息,记录并打印,而不是让TextTestRunner打印出来? – user1776562 2014-08-27 09:06:11

+0

@ user1776562您可以传递流变量。例如unittest.TextTestRunner(verbosity = 2,stream = sys.stderr),您可以将自定义流传递给它,而不是默认stderr,然后从流中获取输出。 – 2014-08-27 09:58:58