8

ノーズテストを使用してテスト スイートを実行しているときに、すべての 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)

適切なインポートで。エラーが発生した他のものを試したので、それがノーズテストによって実行されていることはわかっています。唯一のことは、それがまったく効果がないということです。警告は引き続き表示されます。

何か案が?

ありがとう!

4

1 に答える 1

6

鼻はあなたが設定したものを上書きするようです:

warnings.filterwarnings("ignore")

ただし、nose へのコマンド ライン オプションを使用して、nose テスト中に警告をフィルタリングできます。例えば:

$ nosetests --logging-filter=SAWarning

これでもすべての状況で機能するとは限らないことがわかりました。この場合は、次を試すことができます。

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