4.3. 使用 JUnit 测试规则
创建了测试规则后,它可以作为 JUnit 测试的一部分进行分析,以确认该规则是否符合执行的所有条件。MTR 规则存储库中的 WindupRulesMultipleTests
类旨在同时测试多个规则,并根据任何缺失的要求提供反馈。
先决条件
- 分叉并克隆 MTR XML 规则。此仓库的位置被称为 <RULESETS_REPO>。
- 创建一个测试文件。
创建 JUnit 测试配置
以下说明详细介绍了使用 Eclipse 创建 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 Configuration…。
- 在左侧的选项中,右键单击 JUnit,再选择 New。
使用以下命令:
-
Name : JUnit 测试的名称,如
WindupRulesMultipleTests
。 -
Project: 确保将其设置为
windup-rulesets
。 Test class: 将其设置为
org.jboss.windup.rules.tests.WindupRulesMultipleTests
。
-
Name : JUnit 测试的名称,如
选择 Arguments 选项卡,并添加
-DrunTestsMatching=<RULE_NAME>
VM 参数。例如,如果您的规则名称是community-rules
,则您可以添加-DrunTestsMatching=community-rules
,如以下镜像中所示。点右下角的 Run 以开始测试。
执行完成后,结果就可以进行分析。如果所有测试都通过,则正确格式化测试规则。如果所有测试都未通过,建议解决测试失败中出现的每个问题。