2012-01-13 5 views
4

私はセットアップに私のパラメーター化データこのメソッドを使用します。パラメータ化されたJunitテストのコマンドライン引数またはシステムプロパティを使用していますか?

@Parameterized.Parameters 
public static Collection<Object[]> getStories() { 
     Collection<Object[]> allStories = new ArrayList<Object[]>() 
     new File(SPEC_DIRECTORY).eachFileRecurse(FileType.FILES) { file -> 
      if (file.getName().endsWith('.story')) { 
       Object[] args = [file.getName(), file] 
       allStories << args 
      } 
     } 
     return allStories 
    } 

を私はgradle test経由のGradleの主なテストを呼び出すが、私は、システムのプロパティを見ることができていないようです。

gradle -Dfile=test.storyという呼び出しを使用すると、System.getProperty('file')は未定義です。このパラメータ化されたデータビルダに引数を渡すにはどうすればよいですか?

+0

と共に

test{ systemProperty 'Chrome', System.getProperty('Browser') } 

を - その代わりに、上記の場合は単なる例示であり、それはおそらく使用する理にかなってコマンドのGradle試験-DBrowserと結合する=クロム

を必要JUnitテスト実行中にJavaシステムプロパティを追加するにはどうすればよいですか?(http://stackoverflow.com/questions/6878243/how-can-i-add-a-java-system-property-during-junit- –

答えて

5

Gradleは、すべてのテストを別々のJVMで実行します。 Gradle DSL referenceを参照してください

test { 
    systemProperty "file", "test.story" 
} 

:あなたはtestタスクを設定する必要があります。

+0

これはマイルストーン9では機能しなくなりました。これは変更されましたか? –

+1

私はここで何か変わったとは思わない。問題はどこにもないと絶対に確信していますか? –

+0

問題は他のところでした。ええ。 –

0

この質問につきものになっている(私のような)初心者の興味のために;私は、gradleテストタスクのsystemPropertyがシステムプロパティをtest jvmに渡すだけであることを明示したいと思います。あなたは、単に

test{ 
systemProperty 'Chrome', 'Browser' } 

を使用するのであればあなたは「はSystem.getProperty( 『ブラウザ』)」を介して、あなたのJUnitテスト内のプロパティにアクセスすることはできません。

gradle test -DBrowser=Chrome 
関連する問題