La ejecución de tarro de karate con simulacro usando biblioteca externa Spring Framework

mactwixs:

Buenos días. Estoy trabajando en un proyecto que utiliza Karate independiente. Estoy completamente nuevo para Karate para justificar mi falta de conocimiento aquí.

El tarro de karate independiente se ejecuta con el ' -m parámetro de línea de comando' para iniciar una mock.feature. Las referencias mock.feature una clase utilidades que se basa en ' org.springframework.amqp '.

El problema es que la puesta en marcha karate.jar falla con una excepción de ejecución de línea de comandos debido a la biblioteca externa ' org / Spring Framework / amqp / conejo / conexión / ConnectionFactory '

api1_mock_test.feature

Feature: API1 Mock Test

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

Nuestros RabbitUtils es sólo una clase java que las importaciones org.springframework.amqp bibliotecas externas para proporcionar funciones para interactuar con un corredor de conejo AMQP ejemplo de conexión, recibir, publicar, etc. Cuando purga construido y gestionado en IntelliJ todo funciona bien. La referencia POM en el proyecto es:

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

¿El tarro de karate independiente tiene alguna manera de hacer referencia a bibliotecas externas? El parámetro de ruta de clase se establece en referencia a nuestro espacio de trabajo '\ target \ test-clases ' y contiene el archivo RabbitUtils.class.

La ejecución actual de la raíz del espacio de trabajo es el siguiente:

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

¡Gracias!

Peter Thomas:

Gracias por preguntar esto, y creo que he encontrado una manera de hacer esto que abre un montón de grandes posibilidades. La solución es utilizar Java primeros principios, y no utiliza la -jaropción. La clase de karate comando de línea de la aplicación (o CLI) pasa a ser com.intuit.karate.Main. Voy a dar una demostración aquí de utilizar SikuliX . En primer lugar, el archivo de función test.feature:

Feature: sikuli test

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

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

Y con la karate.jary sikulixapi.jaren la misma carpeta en la línea de comandos, esto funciona (para Windows, utilice ;en lugar de :como el "separador de ruta"):

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=204014&siteId=1
Recomendado
Clasificación