4.3. 使用 JUnit 测试规则


创建了测试规则后,它可以作为 JUnit 测试的一部分进行分析,以确认该规则是否符合执行的所有条件。MTR 规则存储库中的 WindupRulesMultipleTests 类旨在同时测试多个规则,并根据任何缺失的要求提供反馈。

先决条件

  • 分叉并克隆 MTR XML 规则。此仓库的位置被称为 <RULESETS_REPO>。
  • 创建一个测试文件。

创建 JUnit 测试配置

以下说明详细介绍了使用 Red Hat CodeReady Studio 创建 JUnit 测试。当使用其他 IDE 时,建议您参考 IDE 文档了解创建 JUnit 测试的说明。

  1. 将 MTR 规则集存储库导入到 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>.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)_

  3. 从顶部菜单栏中选择 Run
  4. 从出现的下拉列表中选择 Run Configuration…​
  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> VM 参数。例如,如果您的规则名称是 community-rules,则您可以添加 -DrunTestsMatching=community-rules,如以下镜像中所示。

    JUnit 测试参数
  8. 点右下角的 Run 以开始测试。

    执行完成后,结果就可以进行分析。如果所有测试都通过,则正确格式化测试规则。如果所有测试都未通过,建议解决测试失败中出现的每个问题。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.