4.3. JUnit を使用してルールをテストする
テストルールが作成されたら、JUnit テストの一部として分析し、ルールが実行のすべての基準を満たしていることを確認できます。MTR ルールリポジトリーの WindupRulesMultipleTests
クラスは、複数のルールを同時にテストし、不足している要件についてフィードバックを提供するように設計されています。
前提条件
- MTR XML ルールをフォークし、クローンを作成している。このリポジトリーの場所は <RULESETS_REPO> と呼ばれます。
- テスト XML ルールを作成している。
JUnit テスト設定の作成
以下の手順では、Red Hat CodeReady Studio を使用して JUnit テストを作成する方法を説明します。別の IDE を使用する場合は、IDE のドキュメントに記載されている JUnit テストの作成方法を参照してください。
- MTR ルールセットリポジトリーを IDE にインポートします。
カスタムルールを対応するテストとデータと共に
</path/to/RULESETS_REPO>/rules-reviewed/<RULE_NAME>/
にコピーします。これにより、以下のディレクトリー構造を作成する必要があります。ディレクトリー構造
├── *rules-reviewed/* _(Root directory of the rules found within the project)_ │ ├── *<RULE_NAME>/* _(Directory to contain the newly developed rule and tests)_ │ │ ├── *<RULE_NAME>.windup.xml* _(Custom rule)_ │ │ ├── *tests/* _(Directory that contains any test rules and data)_ │ │ │ ├── *<RULE_NAME>.windup.test.xml* _(Test rule)_ │ │ │ └── *data/* _(Optional directory to contain test rule data)_
- トップメニューバーから Run を選択します。
- 表示されるドロップダウンメニューから Run Configurations… を選択します。
- 左側のオプションから JUnit を右クリックし、New を選択します。
以下のコマンドを入力します。
-
Name: JUnit テストの名前 (例:
WindupRulesMultipleTests
)。 -
Project:
windup-rulesets
に設定します。 Test class:
org.jboss.windup.rules.tests.WindupRulesMultipleTests
に設定します。
-
Name: JUnit テストの名前 (例:
Arguments タブを選択し、
-DrunTestsMatching=<RULE_NAME>
仮想マシン引数を追加します。たとえば、ルール名がcommunity-rules
であった場合は、以下のイメージのように-DrunTestsMatching=community-rules
を追加します。右下隅の Run をクリックしてテストを開始します。
実行が完了すると、結果を分析できるようになります。すべてのテストに合格した場合は、テストルールの形式が正しく設定されています。テストにすべて合格しなかった場合は、テストに合格しなかった各問題に対処することをお勧めします。