2017-01-05 22 views
1

私はGradleを使ってSpring Bootプロジェクトをセットアップしました。私はapplication.ymlファイルには、 'dev'と 'prod'という2つの環境で使用する設定を記述しています。Gradleテストタスク、テスト用にSpringブート環境を設定する方法は?

私はGradleのbootRunタスクがbuild.gradleに次のコードを使用して、呼び出された「DEV」にデフォルトの環境を設定することができました:

def profile = 'dev' 
bootRun { 
    args = ["--spring.profiles.active=" + profile] 
} 

しかし、私はテストのタスクに同じコードを追加した場合、それは動作しません:

def profile = 'dev' 
test { 
    args = ["--spring.profiles.active=" + profile] 
    testLogging { 
    showStandardStreams = true 
    } 
} 

スタックトレース:

FAILURE: Build failed with an exception. 

* Where: 
Build file 'C:\Users\Blade\javaworkspace\AutomationStatisticsPortal\build.gradle' line: 43 

* What went wrong: 
A problem occurred evaluating root project 'AutomationStatisticsPortal'. 
> Could not set unknown property 'args' for task ':test' of type org.gradle.api.tasks.testing.Test. 

をせずにそのコードはテストタスクが間違っている 'prod'から構成を取り上げているというコードです。

私はbootRunで 'dev'を使用したいと思っています。手動でテストするためにアプリケーションを起動する方法です。しかし、私はテストタスクのために 'dev'を使用する方法を確かめることはできません。そして、Tomcatが 'prod'だけを使用することを確認してください。

は、私はそれは私がそれを上書きしない場合、デフォルトの動作であると思われるように、そのTomcatは「PROD」の設定をピックアップすると仮定することはできますか?

お知らせください。

答えて

0

は、それは違いはありません。この

test { 
    systemProperties['spring.profiles.active'] = 'dev' 
} 
+0

を試してみてください。私はそれが正しいプロパティを使用することができる唯一の方法は、yamlファイルを変更することです。 propetyはdevとprodと同じ名前です。私はprodのためにそれをリネームすると、それはdevの1つを拾うでしょう。しかし、同じ名前の場合はそうではありません。私は同じ名前を保つ必要があります。 – clickcell

+0

私はyaml文書の順序を変更することによってそれを修正することができました。私は最初に「dev」を、次に「---」を、次に「prod」の文書を持っていました。私はちょうどそれらを交換し、それは私の問題を修正したようだ。本当に奇妙です。 – clickcell

関連する問題