0

Turbogears2 Webアプリケーションをテストするために、テスト環境をNoseからpy.testに切り替えています。

現在、Noseを実行すると、アプリケーションが必要とするすべてのテスト変数を保持するテスト構成ファイル(test.ini)から情報が収集されます。そしてそれは自動的にそうするようです(私は単に走っていてnosetests、すべてがロードされます)

問題は、必要な変数をアプリにロードできるように、py.testが正しいINI構成ファイルを指すことができないことに依存しています。

現在、失敗するポイントはpylons.app_globalsです。これは、py.testの実行時には存在しません(したがって、すべてが失敗します)。

Turbogearsのドキュメントを読んだことがありますが、Nose/nosetestsについてのみ言及されています。

py.testで依存しているテスト変数を使用してアプリケーションをリードできるようにする方法はありますか?

4

1 に答える 1

1

py.testの部分に関する限り、次のようなものを実装できます。

# content of conftest.py
def pytest_sessionstart():
    # setup resources before any test is executed

def pytest_sessionfinish():
    # teardown resources after the last test has executed

このようなconftest.pyファイルは、現在、チェックアウトルートディレクトリに配置するのが最適です。py-1.3.4は、十分に早い段階でこのフックを検出した場合にのみこのフックを実行します。

TurboGearsについても少し調べましたが、実際にどのように/どのtest.iniがロードされるかというメカニズムを簡単に見つけることができませんでした。誰かがこの情報を提供できれば、私は答えを更新することができます。

HTH。ホルガー

于 2010-10-01T09:00:04.107 に答える