4.3. JUnit を使用したルールのテスト

テストルールが作成されたら、JUnit テストの一部として分析し、ルールが実行のすべての基準を満たしていることを確認できます。MTA ルールリポジトリーの WindupRulesMultipleTests クラスは、複数のルールを同時にテストし、不足している要件についてフィードバックを提供するように設計されています。

前提条件

  • MTA XML ルールをフォークし、クローンを作成します。このリポジトリーの場所は <RULESETS_REPO> と呼ばれます。
  • テスト XML ルールを作成します。

JUnit テスト設定の作成

以下の手順では、Red Hat CodeReady Studio を使用して JUnit テストを作成する方法を説明します。別の IDE を使用する場合は、JUnit テストの作成方法について IDE のドキュメントを参照してください。

  1. MTA ルールセットリポジトリーを IDE にインポートします。
  2. カスタムルールを対応するテストとデータと共に </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>.mta.xml  (Custom rule)
    │   │   ├── tests/  (Directory that contains any test rules and data)
    │   │   │   ├── <RULE_NAME>.mta.test.xml (Test rule)
    │   │   │   └── data/  (Optional directory to contain test rule data)

  3. トップメニューバーから Run を選択します。
  4. 表示されるドロップダウンメニューから Run Configurations…​ を選択します。
  5. 左側のオプションから JUnit を右クリックし、New を選択します。
  6. 以下のコマンドを入力します。

    • Name: JUnit テストの名前 (例: WindupRulesMultipleTests)。
    • Project: これが windup-rulesets に設定されていることを確認します。
    • Test class: これを org.jboss.windup.rules.tests.WindupRulesMultipleTests に設定します。

      junit test
  7. Arguments タブを選択し、-DrunTestsMatching=<RULE_NAME> 仮想マシン引数を追加します。たとえば、ルール名が community-rules であった場合は、以下のイメージのように -DrunTestsMatching=community-rules を追加します。

    junit test arguments
  8. 右下隅の Run をクリックしてテストを開始します。

実行が完了すると、結果を分析できるようになります。すべてのテストに合格した場合は、テストルールの形式に問題はありません。それ以外の場合は、テストの失敗で発生した各問題に対処することをお勧めします。