2016-11-30 88 views
3

我用下面的註釋標記我的集成測試:JUnit5標籤專用gradle這個任務

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

這是我在build.gradle用於從gradle build排除這些測試的過濾器:

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

所以遠,那麼好。

現在我想提供專門運行集成測試的Gradle任務 - 建議的方法是什麼?

+0

這是一個非常好的問題,我恐怕目前沒有_clean_解決方案來實現這一點,因爲我們已經實現了JUnit Platform Gradle插件。你會因此願意創建一個問題,以便我們保持這個問題? 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/579(如Sam Brannen所示)。

同時,我使用的是項目屬性作爲一種變通方法:

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

因此,集成測試將是跳過有:

gradle test

但會包括與:

gradle test -PrunIntegrationTests

+1

太棒了!我正在建議一種類似的解決方法。所以我很高興你自己想出了它。另外,感謝提出GitHub問題。 –