有没有办法针对预启动的弹簧启动服务器将空手道测试作为集成测试套件运行?



有什么好方法可以让空手道测试在Maven构建的"集成测试"阶段测试Spring-Boot微服务? 我的意思是:是否有一种反模式/解决方法效果很好,或者我运气不好,因为这是空手道发展的事后想法?

到目前为止,我收集的事实:

  1. 它在这里说:"万无一失的插件没有硬编码到空手道中" 有没有办法在 maven 的集成测试阶段运行空手道测试?

  2. 在 maven-failsafe-plugin 的上下文中运行空手道测试根本不起作用。 易于在下面的测试项目 url 上重现。 首先有两个问题:

    1. 从 maven-failsafe 运行时,空手道将生成.txt和.html文件,但不生成 .json Cucumber 输出文件。
    2. 因此,您无法从黄瓜报告插件(我需要(获得 HTML 报告。
  3. 我创建了一个项目来演示这些事实:https://github.com/djangofan/karate-api-sample

  4. 运行集成测试要求我在测试套件之前启动 Spring 引导,然后在之后停止 Spring 引导服务器。 Maven SureFire 没有此功能,但 maven 故障安全插件具有:Maven 构建助手插件有一个预集成测试钩子。 仅受Maven万无一失的限制,我就不走运了。

  5. 我在空手道
  6. /空手道演示项目中看到了一个从代码启动 Spring 启动服务器的示例。 当我尝试测试已经建立的 Web 服务时,这并不容易实现。 这是我唯一的选择:将 surefire 与类过滤器和代码一起使用来引导吗?

  7. 鉴于没有好的答案,我将恢复使用cucumber-java+resteasy,我很确定它将与 maven 故障保护一起使用:https://maven.apache.org/surefire/maven-failsafe-plugin/examples/cucumber.html

首先,这不是Karate.js不确定这是从哪里来的:)

从 maven-failsafe 运行时,空手道将生成.txt和.html文件,但不生成 .json Cucumber 输出文件。

抱歉,无法复制。

对于故障安全,只需使用命名约定即可,例如**/IT*.java

Maven SureFire没有此功能,但Maven故障安全插件具有:

因此,如上所述使用故障保护。如果您无法做到这一点,请更改您的项目以演示问题,我们承诺会修复它。 另请参阅以下说明:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

鉴于没有好的答案,我将恢复使用黄瓜-java + resteasy

这当然是你的选择。至少在我的(有偏见的:)意见 您将错过空手道添加的所有 JSON 断言值,以及报告的并行执行 + 聚合。我相信您会尽可能地提供帮助,以便我们可以为所有需要此解决方案的人提供更好的体验 - 但除此之外,嘿 - 不用担心:P

最新更新