Karate 有没有一种方法可以将空手道测试作为一个集成测试套件,在预引导的spring引导服务器上运行?
在Maven构建的“集成测试”阶段,有没有什么好办法让空手道测试来测试Spring Boot微服务?我的意思是:是否有一个反模式/变通方法可以很好地发挥作用,或者我运气不佳,因为这是空手道发展的一个事后想法 到目前为止,我收集的事实如下:Karate 有没有一种方法可以将空手道测试作为一个集成测试套件,在预引导的spring引导服务器上运行?,karate,spring-boot-test,Karate,Spring Boot Test,在Maven构建的“集成测试”阶段,有没有什么好办法让空手道测试来测试Spring Boot微服务?我的意思是:是否有一个反模式/变通方法可以很好地发挥作用,或者我运气不佳,因为这是空手道发展的一个事后想法 到目前为止,我收集的事实如下: 这里写着:“surefire插件没有硬编码到空手道中” 在maven failsafe插件的上下文中运行空手道测试根本不起作用。很容易在下面我的测试项目url上复制。最重要的两个问题: 从maven failsafe运行时,Karate将生成.txt和.ht
cucumberjava
+resteasy
,我确信这将与maven failsafe一起工作:首先,这不是
Karate.js
不确定它来自哪里:)
从maven failsafe运行时,Karate将生成.txt和.html文件,但不会生成.json输出文件
抱歉,无法复制
对于故障保护,只需使用命名约定即可,例如**/it*.java
Maven SureFire不具备此功能,但Maven故障保护插件具有以下功能:
因此,请使用上面提到的故障保护。如果您无法做到这一点,请更改您的项目以演示该问题,我们承诺将解决该问题。另请参阅以下说明:
如果没有很好的答案,我将恢复使用CumberJava+resteasy
这当然是你的选择。至少在我(有偏见的:)看来,你会的,并行执行+报告聚合。我相信您会尽可能地提供帮助,以便我们能够为所有需要此解决方案的人提供更好的体验-但是,嘿-不用担心:P好的,可以。我很惊讶你不能复制我已经创建的项目。您只需将pom.xml中的字符串“surefire”替换为“failsafe”,然后运行它,您就可以复制(至少部分复制)。我可以创建一个新项目,该项目可以复制到更详细的程度。@djangofan请确保您严格按照说明操作:我已经尝试过了。结果证明我做不到,这是Maven的局限,不是空手道。下面是我的测试项目来证明这一点:。感谢你引导我走上了一条似乎是正确的道路来发现这个局限性。使用Gradle可能会解决我的问题,但这不是我项目的一个选项。如果我使用空手道进行“分离的集成测试”,我需要一个单独的mvn测试模块。@djangofan非常感谢更新和链接,这将帮助其他人我最终实现了这一点,它大大减少了我在空手道测试中需要的样板代码量。基本上,我将Spring引导连接到DB和JMS,然后我的空手道测试将其用作实际系统的代理。这意味着我的空手道测试是100%的HTTP调用,没有任何导入的Java类。