【问题标题】:Turn off sqlalchemy warnings in nosetests在鼻子测试中关闭 sqlalchemy 警告
【发布时间】:2012-07-19 15:06:32
【问题描述】:

我试图在使用nosetests 运行我的测试套件时抑制所有sqlalchemy 警告。我读了Turn off a warning in sqlalchemy

.............................../Users/ca/.pythonbrew/venvs/Python-2.7.3/api/lib/python2.7/site-packages/SQLAlchemy-0.7.5-py2.7-macosx-10.7-x86_64.egg/sqlalchemy/engine/default.py:330: Warning: Field 'random_id' doesn't have a default value
cursor.execute(statement, parameters)

我将它包含在我的包的 __init__.py 文件中:

def setup_package():
    """Setup the test during the whole session.

    Run by nosetests
    """
    # Suppress all SQLAlchemy warnings
    warnings.filterwarnings("ignore", category=sa_exc.SAWarning)

使用正确的导入。我知道它是由nosetests 运行的,因为我尝试了其他一些引发错误的东西。唯一的问题是它没有任何效果。仍然会显示警告。

有什么想法吗?

谢谢!

【问题讨论】:

  • 我不相信“默认值”警告属于SAWarning 类别,而是Warning。我自己使用以下:ignore:Field '\w+' doesn't have a default value:Warning,它似乎工作

标签: python sqlalchemy nosetests


【解决方案1】:

鼻子似乎会覆盖您设置的任何内容:

warnings.filterwarnings("ignore")

但是,您可以在鼻子测试期间使用鼻子的命令行选项过滤警告。例如:

$ nosetests --logging-filter=SAWarning

我发现这在所有情况下可能仍然无法正常工作。如果是这种情况,您可以尝试:

$ python -W ignore `which nosetests`

【讨论】:

  • 同样可以在 pytest(较新的 3.1)中使用 pytest 的 pytest -W <filter> 参数或作为 pytest.ini 中的属性来完成;见docs here
猜你喜欢
  • 2011-07-10
  • 2023-04-07
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
相关资源
最近更新 更多