当您可以在没有 karate-junit5 的情况下运行测试时,karate-junit5 的目的是什么?

Pet*_*rds 5 karate

Karate 文档有 2 个使用 Karate 和 JUnit5 进行测试的示例:

我在第二个示例中仅使用 karate-core (0.9.9-RC2) 创建了一个项目,不需要 karate-junit5。有什么不同?

Karate 提供的功能给我留下了深刻的印象,我有兴趣创建一个测试工具,它可能需要根据运行时标准挑选测试,并且还需要自定义报告,因此我正在寻找连接到的最简单方法测试运行者。karate-junit5 中的代码似乎是一个很好的起点,但我只是想了解为什么正常运行的测试实际上不需要它。

Pet*_*mas 5

很好的问题,我可以回答这个问题。你是对的,直接使用Runner类就足够了,这是并行运行测试的唯一方法。

但是,如果您使用 JUnit 运行程序,您将获得作为 Java 开发人员所习惯的“绿条”体验,并且我们确保填充 IDE UI(例如,测试运行和失败的树形视图等)。如果我没记错的话,在 IntelliJ 中,当您单击“测试用例”节点之一时,您甚至可以看到日志。

Scenario编辑:请注意,我的意思是您可以在 IDE 中看到每个数据,而不是包含 JUnit 测试的 Java 类。下面是 IntelliJ 的屏幕截图。因此,这可以方便地快速查看失败的原因以及相应的错误消息,而无需深入查看日志/HTML 报告:

在此输入图像描述

但是,在我看来,一旦您习惯查看 Karate 输出的 HTML 报告,您就不需要 JUnit 集成。

总结一下:JUnit 支持是

a) 因为我们是作为 Cucumber 扩展开始的(甚至有一个@KarateOptions注释已被弃用)

b) 因为有些人喜欢 IDE 集成 + 体验,并且在开发模式下运行“一次一个测试”很有用

您的评论让我更加确信我们最终可以弃用 JUnit 支持。一旦您有机会进行更多尝试,就可以得到您的反馈。