【问题标题】:How to set nosetests to only log errors?如何将鼻子测试设置为仅记录错误?
【发布时间】:2015-07-24 13:03:53
【问题描述】:

我正在用鼻子运行大约一百个单元测试。当我更改模型中的某些内容时,我显然会失败,并混入一些错误。有没有一种简单的方法可以告诉鼻子只记录错误?然后我不必通过失败的页面来查找一个错误日志。

【问题讨论】:

  • 您是否尝试过使用nose 提供的--logging-* 标志?
  • 是的,类似的东西,但我在文档中找不到任何东西告诉我如何获得我需要的东西。
  • --logging-clear-handlers 有帮助吗?
  • 不抱歉,仍然显示错误和失败的混合。
  • 你试过--logging-level=ERROR吗?

标签: python unit-testing nose


【解决方案1】:

nose 提供了测试异常的工具(就像 unittest 一样)。试试这个例子(并阅读鼻子测试工具中的其他工具

from nose.tools import *

l = []
d = dict()

@raises(Exception)
def test_Exception1():
    '''this test should pass'''
    l.pop()

@raises(KeyError)
def test_Exception2():
    '''this test should pass'''
    d[1]

【讨论】:

    【解决方案2】:

    另一种方法是将输出重定向到标准输出并使用 grep(根据您的喜好调整行数,在本例中为 15):

    nosetests tests.py 2>&1 | grep "ERROR" -A 15
    

    另一种选择是使用 --pdb-errors 停止每个错误并打开调试器。

    这不是你问的,但这是我最终使用的。

    【讨论】:

    • 记录错误和停止执行在每个错误之间有一个主要区别。
    • @Louis :我知道,这就是为什么我说这不是所要求的。我编辑了我的答案以包括我最终使用的内容(grep)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多