복붙노트

[SPRING] 모의 사용하여 외부 라이브러리 스프링 프레임 워크와 가라테 항아리를 실행

SPRING

모의 사용하여 외부 라이브러리 스프링 프레임 워크와 가라테 항아리를 실행

좋은 아침. 나는 공수 독립을 사용하는 프로젝트에서 일하고 있습니다. 여기 지식의 나의 부족을 변명 할 가라테 완전히 새로운입니다.

독립형 공수 항아리는 mock.feature을 시작하는 "-m"커맨드 라인 파라미터로 실행된다. mock.feature는 'org.springframework.amqp'에 내장 된 유틸 클래스를 참조합니다.

문제는 karate.jar 시작 인해 외부 라이브러리 '조직 / 스프링 프레임 워크 / AMQP / 토끼 / 연결 / ConnectionFactory에'에 명령 줄 실행 예외와 함께 실패이다

api1_mock_test.feature

Feature: API1 Mock Test

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

우리 RabbitUtils 수입은 외부 라이브러리를 org.springframework.amqp 단지 자바 클래스는, 예를 들어 토끼 AMQP 브로커와 상호 작용하는 기능을 제공하는 것입니다 구축하고 모든 작품을 좋아 인 IntelliJ에서 실행하는 경우 등을 제거, 게시, 연결받을 수 있습니다. 프로젝트의 POM 기준은 다음과 같습니다

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

공수의 독립 항아리는 외부 라이브러리를 참조 할 수있는 방법이 있습니까? 클래스 경로 매개 변수는 '\ 대상 \ 테스트 - 클래스.'우리의 작업 공간을 참조하도록 설정하고 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. ==============================

    1.이 요청에 대한 감사, 그리고 내가 좋은 많은 가능성을 열어이 작업을 수행 할 수있는 방법을 알아 냈어요 생각합니다. 이 솔루션은 자바 첫 번째 원칙을 사용하고 -jar 옵션을 사용하지 않는 것입니다. 가라테 명령 줄 - 응용 프로그램 (또는 CLI) 클래스는 com.intuit.karate.Main 수 발생합니다. 여기 SikuliX를 사용하는 데모를 제공하겠습니다. 첫째, 기능 파일 test.feature :

    이 요청에 대한 감사, 그리고 내가 좋은 많은 가능성을 열어이 작업을 수행 할 수있는 방법을 알아 냈어요 생각합니다. 이 솔루션은 자바 첫 번째 원칙을 사용하고 -jar 옵션을 사용하지 않는 것입니다. 가라테 명령 줄 - 응용 프로그램 (또는 CLI) 클래스는 com.intuit.karate.Main 수 발생합니다. 여기 SikuliX를 사용하는 데모를 제공하겠습니다. 첫째, 기능 파일 test.feature :

    Feature: sikuli test
    
    Background:
    * def Screen = Java.type('org.sikuli.script.Screen')
    
    Scenario:
    * def s = new Screen()
    * def c = s.capture()
    * eval c.getFile('.')
    

    그리고 명령 줄에서 동일한 폴더에 karate.jar 및 sikulixapi.jar으로,이 (창, 사용, 대신 : "경로 분리"으로) 작동 :

    java -cp karate.jar:sikulixapi.jar com.intuit.karate.Main test.feature 
    
  2. from https://stackoverflow.com/questions/56456840/executing-karate-jar-with-mock-using-external-library-spring-framework by cc-by-sa and MIT license