1. 序章

テストをスキップすることは通常悪い考えですが、それが役立つかもしれないいくつかの状況があり、それは私たちにいくらかの時間を節約するでしょう。 たとえば、新しい機能を開発していて、中間ビルド内で結果を確認したいとします。 。 この場合、テストを一時的にスキップして、テストのコンパイルと実行のオーバーヘッドを減らすことができます。 間違いなく、テストを無視すると多くの深刻な問題が発生する可能性があります。

この短いチュートリアルでは、Gradleビルドツールを使用するときにテストをスキップする方法を説明します。

2. コマンドラインフラグの使用

まず、スキップしたい簡単なテストを作成しましょう。

@Test
void skippableTest() {
    Assertions.assertTrue(true);
}

build コマンドを実行すると、次のようになります。

gradle build

実行中のタスクが表示されます。

> ...
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test
> ...

Gradleビルドからタスクをスキップするには、-xまたは–exclude-taskオプションを使用できます。 この場合、 「-xtest」を使用して、ビルドからテストをスキップします。

実際の動作を確認するために、-xオプションを指定してbuildコマンドを実行してみましょう。

gradle build -x test

実行中のタスクが表示されます。

> Task :compileJava NO-SOURCE 
> Task :processResources NO-SOURCE 
> Task :classes UP-TO-DATE 
> Task :jar 
> Task :assemble 
> Task :check 
> Task :build

その結果、テストソースはコンパイルされないため、実行されません。

3. Gradleビルドスクリプトの使用

Gradleビルドスクリプトを使用してテストをスキップするオプションがさらにあります。 たとえば、 onlyIf()メソッドを使用して、特定の条件に基づいて、または特定の環境でのみテストをスキップできます。 このメソッドがfalseを返す場合、テストはスキップされます。

プロジェクトプロパティのチェックに基づいてテストをスキップしましょう。

test.onlyIf { !project.hasProperty('someProperty') }

次に、 build コマンドを実行し、somePropertyをGradleに渡します。

gradle build -PsomeProperty

したがって、Gradleはテストの実行をスキップします。

> ...
> Task :compileTestJava 
> Task :processTestResources NO-SOURCE 
> Task :testClasses 
> Task :test SKIPPED 
> Task :check UP-TO-DATE 
> ...

さらに、 build.gradleファイルのexcludeプロパティを使用して、パッケージまたはクラス名に基づいてテストを除外できます。

test {
    exclude 'org/boo/**'
    exclude '**/Bar.class'
}

正規表現パターンに基づくテストをスキップすることもできます。たとえば、クラス名が「 Integration」で終わるすべてのテストをスキップできます。

test {
    exclude '**/**Integration'
}

4. 結論

このチュートリアルでは、Gradleビルドツールを使用するときにテストをスキップする方法を学びました。 また、コマンドラインで使用できるすべての関連オプションと、Gradleビルドスクリプトで使用できるオプションについても説明しました。