我试图在使用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运行的,因为我尝试了其他一些引起错误的东西。唯一的问题是它没有任何效果。警告仍然显示。
有什么想法吗?
谢谢!
答案 0 :(得分:4)
看起来鼻子会覆盖你设置的任何内容:
warnings.filterwarnings("ignore")
但是,您可以使用命令行选项在鼻子测试期间过滤警告。 e.g:
$ nosetests --logging-filter=SAWarning
我发现这在任何情况下都可能无效。如果是这种情况,您可以尝试:
$ python -W ignore `which nosetests`