Gradleテストとチェックの違い
1. 序章
Gradle は、特にJava開発者の間で、近年非常に人気のある依存関係管理ツールになっています。 習得は簡単で、Groovyで記述されているため、非常に拡張性もあります。
このクイックチュートリアルでは、Gradleテストとチェックタスクの違いを見ていきます。 それぞれが何をするのか、そしていつそれらを使用するのが理にかなっているのかを正確に特定します。
2. Gradleの概要
Gradleは依存関係管理ツールです。 これは、ソフトウェアプロジェクトの依存関係を定義するための堅牢な機能と、テストから展開までのビルドライフサイクル全体を管理するためのさまざまな機能を提供します。
その作業を実行するために、Gradleはタスクを使用します。 タスクは、基本的に、目標を達成するための一連の個別のステップです。 いくつかの例は次のとおりです。
- ソースコードをコンパイルする
- ソースコードをモジュールにパッケージ化する
- モジュールをリモートシステムにデプロイする
Gradleは拡張可能であり、必要なタスクを定義できますが、Java開発者が必要とする最も一般的なタスクはデフォルトで使用できます。 これらのタスクのうちの2つは、testおよびcheckという名前です。
それらは本質的に類似していますが、ソフトウェアプロジェクトの管理に関しては、それぞれの役割がわずかに異なります。 次のセクションでは、それぞれをもう少し詳しく見ていきます。
3. Gradleテストを使用する場合
test タスクを実行するには、次のコマンドを実行するだけです。
gradle test
テストタスクは、プロジェクト内のすべての単体テストを実行します。 test タスクには、その動作を制御するかなりの数のプロパティがあり、ここではそれらすべてについては説明しません。
デフォルトでは、 test タスクは、プロジェクト内のすべての単体テストを自動検出し、それらをコンパイルしてから実行します。 最後に、どのテストが成功し、失敗したかについてのレポートを生成します。
test タスクは、Gradleを使用する際に、すべての開発者が精通している必要のある優れた汎用タスクです。 通常、メインブランチに新しいコードをコミットする前に各開発者が実行する必要があります。
ただし、保護の追加レイヤーとして、正式なソフトウェアビルドプロセスの一部として自動的に実行することも一般的です。 たとえば、 test タスクは、ソースコードをコンパイルした後、最終的なアーティファクトをアセンブルする前に、自動ソフトウェアビルドの一部として利用するのが一般的です。
4. Gradleチェックを使用する場合
check タスクを実行するには、次のコマンドを実行するだけです。
gradle check
test とは異なり、checkタスクは「ライフサイクル」タスクと呼ばれます。 これは、それ自体では何もしないことを意味します。 代わりに、1つ以上のその他タスクを実行します。
デフォルトでは、checkタスクはtestタスクのみを実行します。 これは、他のプラグインがない場合、2つのタスクはまったく同じように動作し、同じ出力を生成することを意味します。
check が重要である理由は、1つ以上の検証タスクをまとめることができるためです。 これにより、複数のタスクを1つずつ実行するのではなく、1つのステップに組み込むことができます。
Gradleエコシステムには、 checkstyle プラグインなど、checkタスクに追加機能を提供する多数のプラグインが含まれています。
一般に、ソースコードの検証作業を行うタスクはすべて、checkタスクに添付する必要があります。 ソースコードスタイルの適用、ライブラリの脆弱性スキャン、統合テストなどはすべて、checkタスクに含めるのに適した候補です。
5. 結論
この記事では、Gradle testおよびcheckタスクを詳しく見てきました。 それらは類似しており、交換して使用できる場合もありますが、目的は異なります。
test タスクは、すべての単体テストを実行し、合格と不合格のレポートを提供するため、ほとんどの開発者が精通している必要があります。
対照的に、 check タスクは、testタスクを他のタスクと組み合わせます。 check タスクに独自のステップを追加するプラグインは多数ありますが、ソフトウェアプロジェクトの特定のニーズを満たすために、いつでも独自のステップを作成できます。