2016-06-21 13 views
0

設定のプロパティを選んではない私は、フォルダ構造は、Scalaの統合テスト

My Project 
    - app 
    - it 
    - com.anjib.my.pkg 
    - resources 
     - application.regression.devl.conf 

以下で統合テストとScalaのプロジェクトを持っている私はapplication.regression.devl.confファイルではなく、そのはまだ引っ張っ統合テストを実行中に置くことによって特性の一つを上書きしたいですトップレベルのプロパティ。例えば

プロジェクト内のいくつかの場所

someKey=someValue 

がある私はapplication.regression.devl.conf

somekey=otherValue 

を置きます。しかし、統合テストはまだsomeValue

を選ぶマイbuild.sbtは

lazy val `my-project` = (project in file(".")) 
    .... 
    .configs(IntegrationTest) 
    .settings(Defaults.itSettings : _*) 
    .... 

のように見える)

def apply(): Config = { 
    val environment = determineEnvironment 
    val defaultConfig = ConfigFactory.load() 
    val envConfig: Config = ConfigFactory.load(s"application.$environment.conf") 
    val regressionSuiteConfig = ConfigFactory.load(s"application.regression.$environment.conf") 
    regressionSuiteConfig.withFallback(envConfig).withFallback(defaultConfig) 

}

アップデートとして

コンフィグ搭載されている:ID私はCtrl + Shift + F10を行いますIntelliJでそれはを拾いました。何も渡されない場合、「application.regression.devl.conf」にconfig.resourceパラメータを設定します

javaOptions in IntegrationTest += "-Dconfig.resource=" + System.getProperty("config.resource", "application.regression.devl.conf") 

このSBTで:だから、このようSBTにjavaOptionsを設定してみsbt it:test

+0

どのように設定を読み込みますか?デフォルトでは、 'application.regression.devl.conf'ではなく' application.conf'と 'reference.conf'を探します。 –

+0

設定ローディングコードで質問を更新 –

答えて

1

でのみ問題があります明示的に。

+0

どのようにsbt.buildの最終部分をパラメータ化できますか? "application.regression。$ env.conf –