忽略测试结果的stderr输出

问题描述:

我想用nose测试一个包。在我写入stderr的其中一项测试中,这会导致测试在Jenkins中报告为中断(我开始使用nose进行测试并生成Junit .xml输出以确定成功) 是否可以登录stderr或对其进行检查某些值?忽略测试结果的stderr输出

所以车费我的测试看起来大致是这样的:

def testFunc() { 
    f1() 
    f2() } 

而且因为我写的从内到stderr失败,我可以告诉鼻子忽略这个或测试失去了一些东西(我希望它只是失败如果发生异常)

编辑: 错误输出导致失败的假设是错误的。在100年代的产品线之间是一个例外。 (由于某种原因,jenkins先显示未格式化(不换行)输出,然后是异常跟踪,之后输出再一次,换行),我只是忽略了这个例外)

+0

你试过重定向stderr吗? http://*.com/questions/6796492/python-temporarily-redirect-stdout-stderr – Qlaus 2012-07-24 17:17:43

如果你不想看到stderr,你可以使用loggingtutorial

实施例:

import logging 
logging.basicConfig(level=logging.ERROR) 
# instead of sys.stderr.write(): 
logging.warning("This is a warning!") 

在这种情况下,警告低于日志级别阈值,所以它不会被打印到stderr。如果你想看到错误,但不一定要实时,你可以指定一个日志文件(文件名参数为logging.basicConfig)。