忽略测试结果的stderr输出

时间:2012-07-24 16:58:46

标签: python jenkins jython nose

我正在尝试使用nose测试一个包。在我写给stderr的其中一个测试中,这导致测试在Jenkins中被报告为已损坏(我使用nose开始测试并生成Junit .xml输出确定成功) 是否可以进入stderr或检查某些值?

所以我的测试看起来大致如下:

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

因为我从内部写入stderr而失败了,我可以告诉鼻子忽略这一点,或者测试缺少某些东西(我希望它只在生成异常时才会失败)

修改: 错误输出导致失败的假设是错误的。在100多个退役产出线之间是一个例外。 (由于某种原因,jenkins首先显示了未格式化(没有换行)输出,然后是异常跟踪,之后输出再次出现,使用换行符。我只是忽略了异常)

1 个答案:

答案 0 :(得分:3)

如果您不想看到stderr,可以使用logging tutorial

示例:

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

在这种情况下,警告低于日志记录级别阈值,因此不会将其打印到stderr。如果您想查看错误但不必实时,则可以指定日志文件(使用filename参数登录logging.basicConfig)。