在nosetests中关闭sqlalchemy警告

cha*_*lax 6 python sqlalchemy nosetests

我试图在使用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)
Run Code Online (Sandbox Code Playgroud)

我把它包含在我的包的__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)
Run Code Online (Sandbox Code Playgroud)

有适当的进口.我知道它是由nosetests运行的,因为我尝试了其他一些引起错误的东西.唯一的问题是它没有任何效果.警告仍会显示.

任何的想法?

谢谢!

rom*_*man 5

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

warnings.filterwarnings("ignore")
Run Code Online (Sandbox Code Playgroud)

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

$ nosetests --logging-filter=SAWarning
Run Code Online (Sandbox Code Playgroud)

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

$ python -W ignore `which nosetests`
Run Code Online (Sandbox Code Playgroud)