当前位置: 首页 > 知识库问答 >
问题:

执行空手道罐与模拟使用外部库Spring框架

司毅庵
2023-03-14

早上好我正在做一个使用空手道的项目。我对空手道完全陌生,可以原谅我在这里缺乏知识。

使用-m命令行参数执行独立空手道jar以启动mock.feature.mock.feature引用基于org.springframework.amqp构建的utils类。

问题是空手道。由于外部库“org/springframework/amqp/rabbit/connection/ConnectionFactory”,jar启动失败,命令行执行异常

api1模拟试验。特色

Feature: API1 Mock Test

Background:
* def RabbitUtils = Java.type('utils.RabbitUtils')
.
.

我们的RabbitUtils只是一个java类,它导入org.springframework.amqp外部库,提供与Rabbit AMQP代理交互的功能,例如连接、接收、发布、清除等。在IntelliJ中构建和运行时,一切正常。项目中的POM参考是:

<dependency>
   <groupId>org.springframework.amqp</groupId>
   <artifactId>spring-rabbit</artifactId>
   <version>2.1.5.RELEASE</version>
</dependency>

空手道独立罐子有某种引用外部库的方法吗?classpath参数被设置为引用我们的工作区。\Target\test-class'并包含RabbitUtils.class文件。

当前从工作区根目录执行的操作如下所示:

java -jar C:\intuit\karate-0.9.3.RC2.jar -cp .\target\test-classes -p 6868 -m .\src\test\java\mocks\api1_mock_test.feature
08:57:05.122 [main] INFO com.intuit.karate.Main - Karate version: 0.9.3.RC2
08:57:05.891 [main] ERROR com.intuit.karate - server-side background init failed - api1_mock_test.feature:4
Exception in thread "main" picocli.CommandLine$ExecutionException:
-unknown-:4 - org/springframework/amqp/rabbit/connection/ConnectionFactory

非常感谢。

共有1个答案

周马鲁
2023-03-14

谢谢你问我这个问题,我想我已经找到了一种方法来做这件事,这会带来很多巨大的可能性。解决方案是使用Java第一原则,而不是使用-jar选项。空手道命令行应用程序(或CLI)类恰好是com。凭直觉。空手道。Main。我将在这里提供一个使用SikuliX的演示。首先,功能文件测试。功能部件

Feature: sikuli test

Background:
* def Screen = Java.type('org.sikuli.script.Screen')

Scenario:
* def s = new Screen()
* def c = s.capture()
* c.getFile('.')

如果karate.jarsikulixapi.jar在命令行的同一个文件夹中,这是可行的(对于windows,使用而不是作为路径分离器):

java -cp karate.jar:sikulixapi.jar com.intuit.karate.Main test.feature

对于那些希望为Visual Studio Code"Karate Runner"扩展自定义类路径的人,请参考以下内容:https://github.com/intuit/karate/wiki/Karate-Robot-Windows-Install-Guide#change-command-line-settings

另见:https://stackoverflow.com/a/58398958/143475

 类似资料:
  • 问题内容: 早上好。我正在使用空手道独立版的项目中工作。我是空手道的新手,请原谅我缺乏知识。 独立的空手道罐子是使用’ -m ‘命令行参数执行的,以启动模拟。功能。mock.feature引用基于 org.springframework.amqp 构建的utils类。 问题是由于外部库’ org / springframework / amqp / rabbit / connection / Co

  • 我95%的自动化框架是在空手道,工作得很好。我们需要检查应用程序日志中显示的中间结果的功能很少(不在Json响应中)。我写了一个外壳脚本,它在从邮递员手动发送请求后验证Linux机器上的应用程序日志。我使用eclipse的JSCH库调用这个脚本。 有没有什么方法可以让我从空手道发送请求,然后调用我的JSCH类进行验证,这样就可以避免手动发送请求的步骤? 谢谢,阿比

  • 我想使用“faker”库在JSON文件中生成假数据,如下所示。 空手道配置。js,我做了以下工作: 在sample.json: 但我在“空手道配置”中遇到了类似“找不到”require“关键字的错误。js' 请帮忙。

  • 我使用Visual Studio代码和空手道跑步者插件安装。使用karate-config.js与独立罐(karate.jar)。我试图在空手道跑步者的VS代码中配置空手道跑步者设置- 执行任务:java-Dkarate.config.dir=test/Resources/-cpkarate.jarcom.intuit.karate.Main"d:\GitHub\KarateTestFramewo

  • 我们有Web服务开发使用。NET和一些服务使用basicHttpBinding-和一些使用wsHttpBinding-。 通过使用空手道框架,使用basicHttpBinding的服务可以很好地执行,但不会执行wsHttpBinding。正在获取响应代码415。 通过在SoapUI端执行以下操作,使用wsHttpBind的相同服务在另一个工具(如SoapUI)中执行得很好。 选中启用WS-A寻址