karate - 当您可以在没有它的情况下运行测试时,karate-junit5 的目的是什么?
问题描述
空手道文档有 2 个使用空手道和 JUnit5 进行测试的示例:
- https://github.com/karatelabs/karate#junit-5
- https://github.com/karatelabs/karate#junit-5-parallel-execution直接使用 JUnit
我在第二个示例中仅使用 karate-core (0.9.9-RC2) 创建了一个项目,并且不需要 karate-junit5。有什么区别?
我对空手道提供的东西印象深刻,我有兴趣创建一个测试工具,它可能需要根据运行时标准挑选测试,还需要自定义报告,所以我正在寻找最简单的方法来连接测试赛跑者。karate-junit5 中的代码似乎是一个很好的起点,但我只是想了解为什么对于正常运行的测试实际上不需要它。
解决方案
很好的问题,我可以回答这个问题。你是对的,直接使用Runner
类就足够了,这是并行运行测试的唯一方法。
但是,如果您使用 JUnit 运行程序,您将获得作为 Java 开发人员所习惯的“绿条”体验,并且我们确保填充 IDE UI(例如,测试运行和失败的树视图等)。如果我没记错的话,在 IntelliJ 中,您甚至可以在单击“测试用例”节点之一时看到日志。
编辑:请注意,我的意思是在这里您可以Scenario
在 IDE 中看到每个数据,而不是包含 JUnit 测试的 Java 类。下面是 IntelliJ 的屏幕截图。所以这可以很方便地快速查看失败的原因和相应的错误消息,而无需深入了解日志/HTML 报告:
但是,一旦您习惯了查看空手道输出的 HTML 报告,在我看来,您就不需要 JUnit 集成了。
总结一下:JUnit 支持是
a) 因为我们是从 Cucumber 扩展开始的(甚至有一个@KarateOptions
注释被弃用)
b) 因为有些人喜欢 IDE 集成 + 体验,并且在开发模式下运行“一次一个测试”很有用
您的评论让我更加确信我们最终可以弃用 JUnit 支持。一旦您有机会玩更多游戏,就可以得到您的反馈。
推荐阅读
- python-3.x - 在 Django 中访问 ManyToManyField 的值
- html - Safari 与 Chrome 字体渲染
- javascript - 将svg中的各种形状转换为路径
- r - 通过管道工发布图像
- javascript - 增加 Z 指数
- npm - npm install 抛出与 ssl 相关的错误
- python - 使用滚动条时被文本小部件内容覆盖的 tkinter 选项卡
- python - 我的 IRC 客户端如何打印在读取传入流量的循环之前收到的数据?
- javascript - Javascript单击事件侦听器功能不起作用
- apache-spark - Spark 2.4.7 JDBC 配置单元查询 SQLException:Method not supported