我正在尝试使用nose
测试一个包。在我写给stderr
的其中一个测试中,这导致测试在Jenkins
中被报告为已损坏(我使用nose
开始测试并生成Junit .xml
输出确定成功)
是否可以进入stderr
或检查某些值?
所以我的测试看起来大致如下:
def testFunc() {
f1()
f2() }
因为我从内部写入stderr而失败了,我可以告诉鼻子忽略这一点,或者测试缺少某些东西(我希望它只在生成异常时才会失败)
修改: 错误输出导致失败的假设是错误的。在100多个退役产出线之间是一个例外。 (由于某种原因,jenkins首先显示了未格式化(没有换行)输出,然后是异常跟踪,之后输出再次出现,使用换行符。我只是忽略了异常)
答案 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)。