8

我试图在使用nosetests 运行我的测试套件时抑制所有sqlalchemy 警告。我阅读了在 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 运行的,因为我尝试了其他一些引发错误的东西。唯一的问题是它没有任何效果。仍然显示警告。

任何的想法?

谢谢!

4

1 回答 1

6

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

warnings.filterwarnings("ignore")

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

$ nosetests --logging-filter=SAWarning

我发现这在所有情况下仍然可能不起作用。如果是这种情况,您可以尝试:

$ python -W ignore `which nosetests`
于 2016-09-22T13:25:28.750 回答