首页 > 解决方案 > 当您可以在没有它的情况下运行测试时,karate-junit5 的目的是什么?

问题描述

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

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

我对空手道提供的东西印象深刻,我有兴趣创建一个测试工具,它可能需要根据运行时标准挑选测试,还需要自定义报告,所以我正在寻找最简单的方法来连接测试赛跑者。karate-junit5 中的代码似乎是一个很好的起点,但我只是想了解为什么对于正常运行的测试实际上不需要它。

标签: karate

解决方案


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

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

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

在此处输入图像描述

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

总结一下:JUnit 支持是

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

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

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


推荐阅读