2012-03-18 1 views
2

これまでのところ、コードを変更したときにindex.yamlを更新できる唯一の方法は、ブラウザ経由でURLをヒットさせるか、TransparentProxyを使用してアプリケーションを提供することですdev_appserver。ユニットテストを使用してindex.yamlを更新する

これは吸う。

ユニットテストランナーでappengine環境をブートストラップする方法があります。これにより、index.yamlを更新するために使用されるプロセスが、シングルスレッドのdev_appserverのオーバーヘッドを発生させることなく実行できるようになります。

違いがあります。私のテストスイート(80%カバレッジ)は2分で実行されますが、index.yamlは更新されません。もし、TransparentProxyを使ってポート8080にリクエストを転送すると、index.yamlは更新されますが、約4時間かかります。再び、これは吸う。

答えて

2

これには、nose-gae-indexと呼ばれる自分のノーズプラグインを使用できます。 SDKの内部IndexYamlUpdaterクラスを使用するため、プロキシ要求よりもはるかに優れています。

この改善にもかかわらず、常に有効にする必要はありません。私はデプロイメントの前にそれを使用し、新しいコミットによるインデックス設定の変更を調べます。

テスト自体でインデックスを必要とするクエリを使用しないでください。そうしないと、構成ファイルにも追加されます。

+0

ヨアヒム。あなたは人生の節約者です、これは何ヶ月もの間、私の後部の痛みでした。私は実際にpy.testに切り替えるプロセスに入っているので、プラグインの肉を取り出してセットアップ/ティアダウンの一部にしました。どうもありがとうございました。 –

関連する問題