2017-02-27 4 views
2

私はgradleを使ってJUnitテストを実行しています。問題は、コマンドラインからテストに引数を渡す必要があることです。私はシステムのプロパティを渡そうとしましたが失敗しました。何arg1引数がないためgradleテストでテストにコマンドライン引数を渡すには?

public class MyTest { 
    @Test 
    public void someTest() throws Exception { 
     assertEquals(System.getProperty("arg1"), "something"); 
    } 
} 

それは失敗します。

gradle test -Darg1=something 

は、ここに私のテストです。 何とかコマンドライン引数を渡すことは可能ですか?であなたのパラメータを送信するために

答えて

6

は、あなたがテストが実行されているJVMをテストしていない、JVMをGradleのためにシステム・パラメータarg1を渡します。副作用からテストを保護するために、このように設計されています。

あなたは、テストへのparamをpropageteこの

test { 
    systemProperty 'arg1', System.getProperty('arg1') 
} 

のようななめらかを使用し、それにそれが私の答えは異なっている方法と同じ方法

+0

{systemProperty 'arg1'、System.getProperty( 'arg1')}スクリプトをテストする場所はどこですか?私はこのエラーを受け取ります: "引数のメソッドテストが見つかりませんでした" – Apperside

+0

@Appersideこれをチェックするhttps://github.com/cuba-platform/cuba/blob/master/build.gradle#L391 – AdamSkywalker

2

利用-Dそうのように:。

./gradlew test -Dgrails.env=dev -D<yourVarName>=<yourValue> 

は-Dのgradle command line documentationを参照してください。

テストでアクセスするには、build.gradleファイルにそれを伝播する必要があります。

test { 
     systemProperty "propertyName", "propertyValue" 
    } 

また、そのように、すべてのシステムのプロパティを渡すことができます:あなたはgradle test -Darg1=smthを実行すると

test { 
     systemProperties(System.getProperties()) 
    } 
+0

を実行する必要がある場合は? – AdamSkywalker

+0

私はあなたの答えを見るためにページをリフレッシュする前に、OPの質問を誤解して編集しました。 – ninnemannk

関連する問題