2016-11-30 21 views
3

私は私の統合テストをタグ付けするために、次のアノテーションを使用します。JUnit5タグ固有のGradleタスク

@Target({ ElementType.TYPE, ElementType.METHOD }) 
@Retention(RetentionPolicy.RUNTIME) 
@Tag("integration-test") 
public @interface IntegrationTest { 
} 

これは、私がgradle buildからこれらのテストを除外するためにbuild.gradleに使用フィルタ:だから

junitPlatform { 
    filters { 
     tags { 
      exclude 'integration-test' 
     } 
    } 
} 

遠く、とても良い。

ここで、統合テストを具体的に実行するGradleタスクを提供したいと思います。これはどのようなアプローチですか?

+0

これは非常に良い質問です。私はJUnit Platform Gradleプラグインをどのように実装したのかで、現時点でそれを達成するための_clean_解決策はありません。したがって、私たちがレーダー上でこれを保つように問題を作成しても構わないと思いますか? https://github.com/junit-team/junit5/issues/new –

+0

ご意見ありがとうございます! https://github.com/junit-team/junit5/issues/579 – netzwerg

答えて

3

私は問題を提出しました:https://github.com/junit-team/junit5/issues/579Sam Brannenで示唆されるように)。

。一方、私は回避策として、プロジェクトのプロパティを使用しています:

junitPlatform { 
    filters { 
     tags { 
      exclude project.hasProperty('runIntegrationTests') ? '' : 'integration-test' 
     } 
    } 
} 

を結果的に、統合テストはしてををスキップされます:

gradle test

が、と含まれています:

gradle test -PrunIntegrationTests

+1

驚くばかり!私はそれに似た回避策を提案しようとしていました。だから私はあなた自身でそれを理解してうれしいです。また、GitHubの問題を提起してくれてありがとう。 –

関連する問題