2016-06-21 94 views
0

我與集成測試的Scala的項目,下面的文件夾結構斯卡拉集成測試不採摘配置屬性

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

我想投入application.regression.devl.conf文件覆蓋的特性之一,但同時運行集成測試它仍然是拉動頂級財產。

例如,在一些項目在有

someKey=someValue 

我把

somekey=otherValue 

application.regression.devl.conf。但是,集成測試仍在採摘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它確實拿起otherValue。所以它有問題,只能用sbt it:test

+0

你是如何加載配置?默認情況下它會查找'application.conf'和'reference.conf',而不是'application.regression.devl.conf'。 –

+0

更新的問題,配置加載代碼 –

回答

1

嘗試設置javaOptions在SBT這樣的:

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

有了這個SBT將設置config.resource參數設置爲「application.regression.devl.conf」如果沒有傳遞明確。

+0

我如何能參數化在sbt.build結束部分? 「application.regression。$ env.conf –