10

playframework 2.1-RC2 を使用しています。まず、同様の質問をすべて 見たので、環境ごとに application.conf ファイルを分けるという一般的な指示に従いました。だから私は application.test.conf を持っていて、この方法でテストを実行します:

play -Dconfig.file=./conf/application.test.conf "test"

私はさまざまな組み合わせを試しました

play -Dconfig.file=./conf/application.test.conf ~test

また

play -Dconfig.file=conf/application.test.conf ~test

それでもうまくいきません。選択されないだけで、代わりにデフォルトのもの (application.conf) が選択されます。

反対側から、もし私がするなら

play -Dconfig.file=./conf/application.dev.conf "run"

その後、アプリケーションは適切な構成を選択します。

では、テスト構成ファイルを指定するにはどうすればよいでしょうか?

4

2 に答える 2

14

クロスプラットフォーム互換の方法でこれを指定する最も堅牢な方法は、Build.scala に直接含めることです。

val main = play.Project(appName, appVersion, appDependencies).settings(
    javaOptions in Test += "-Dconfig.file=conf/test.conf",
    ...
)

おまけ: 一度設定すれば忘れる ;-)

于 2013-02-06T09:12:24.187 に答える
1

もう 1 つの方法は、onLoadConfigという名前の GlobalSettings / Global のメソッドをオーバーライドすることです。これにより、アプリが構成を探す場所を制御できるようになります。

したがって、私たちのアプリケーションの 1 つで、conf/ フォルダーに対して以下の設定を行います。

 conf/application.conf --> configurations common for all environment
 conf/dev/application.conf --> configurations for development environment
 conf/test/application.conf --> configurations for testing environment
 conf/prod/application.conf --> configurations for production environment

これにより、構成のセットアップなどの継承を実装できます。共通の環境モードと、特定の環境モード用の他の 3 つのモードがあります。

onLoadConfig メソッド内のコードは、メイン構成をロードし、環境に固有の正しいフォールバック構成を設定してから、以下のような構成インスタンスを返す必要があります。

**return new Configuration(baseConfig.withFallback(envConfig));**

コードの完全なスニペットについては、このブログ投稿を確認してください。

これが役立つことを願っています。

于 2015-05-19T16:50:49.343 に答える