AssertJ Swagger 테스트가 실행 중 멈춤

그리고 Xa

REST API 개발 ( Spring Boot 웹 애플리케이션) 에서 Swagger 를 채택하려고합니다 . swagger 사양을 기반으로 한 API 문서화 프로세스 및 코드 생성은 잘 작동하며 이제 assertj-swaggerSpringFox 라이브러리를 사용하여 통합 테스트를 작성하는 데 문제가 있습니다.

이 도서관에 대한 몇 마디. Springfox는 런타임에 애플리케이션을 한 번 검사하여 Spring 구성, 클래스 구조 및 다양한 컴파일 시간 Java 주석을 기반으로 API 의미를 추론합니다. swagger-assertj 테스트 라이브러리는 계약 우선 Swagger YAML 파일을 SpringFox에서 생성 한 코드 우선 Swagger JSON과 비교해야합니다. 소비자 주도 계약 테스트의 경우 assertj-swagger는 소비자 사양에 필요한 구현에서 누락 된 리소스, 메서드, 모델 또는 속성을 찾으면 테스트에 실패합니다.

내 테스트는 다음과 같습니다 (테스트 코드는 GitHub 예제 에서 가져옴 ).

@RunWith(SpringRunner.class)
@SpringBootTest
public class AssertJSwaggerConsumerDrivenTest {

    @Test
    public void validateThatImplementationSatisfiesConsumerSpecification() {
        String designFirstSwagger = AssertJSwaggerConsumerDrivenTest.class.getResource("/swagger.yaml").getPath();
        SwaggerAssertions.assertThat("http://localhost:8080/v2/api-docs")
                .satisfiesContract(designFirstSwagger);
    }

}

문제는이 테스트가 오랫동안 실행되고이 줄 이후에 로그 출력이 표시되지 않아 멈춘 것처럼 보인다는 것입니다.

INFO c.s.e.AssertJSwaggerConsumerDrivenTest   : Started AssertJSwaggerConsumerDrivenTest in 24.03 seconds (JVM running for 26.774)
  • SpringFox가 작동하고 있다고 확신 GET http://localhost:8080/v2/api-docs합니다. 브라우저에서 연 후 JSON이 표시 되기 때문입니다.
  • 테스트를 실행할 때 컴파일 시간 또는 빌드 시간 오류가 없으며 Maven이 종속성을 해결하고 Spring Boot 컨텍스트가 성공적으로 초기화됩니다.

assertj-swagger를 사용한 경험이있는 사람이 있나요?

그리고 Xa

나는 내 AssertJSwaggerConsumerDrivenTest! 나는 전에 많은 빨간 테스트 결과를 보게되어 너무 행복해 본 적이 없다고 생각합니다 =) 어쨌든 영원히 테스트를 실행하는 것보다 낫습니다.

AssertJ-Swagger의 readme 는 약간 구식입니다. 문제를 해결하기 위해 변경 한 내용은 다음과 같습니다.

테스트 코드 :

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class AssertJSwaggerConsumerDrivenTest {

    @LocalServerPort
    int randomPort;

    @Test
    public void validateThatImplementationSatisfiesConsumerSpecification() {
        File designFirstSwagger = new File(AssertJSwaggerConsumerDrivenTest.class.getResource("/swagger.yaml").getFile());
        SwaggerAssertions.assertThat("http://localhost:" + randomPort + "/v2/api-docs")
                .satisfiesContract(designFirstSwagger.getAbsolutePath());
    }    
}

pom.xml :

<dependency>
    <groupId>io.github.robwin</groupId>
    <artifactId>assertj-swagger</artifactId>
    <version>0.6.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-core</artifactId>
    <version>3.8.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-parser</artifactId>
    <version>1.0.30</version>
    <scope>test</scope>
</dependency>

또한 나는 java.lang.OutOfMemoryError: Permgen space이것을 -XX:MaxPermSize=384mVM 옵션 에 추가해야 했습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

실행 중 단위 테스트가 멈춤

실행 중 코드가 멈춤

실행 중 Bash 스크립트가 멈춤

Oozie Spark 작업 (Pyspark 스크립트 포함) 실행 중 멈춤

Gradle Build가 작업 실행 중 멈춤 : [: app : generateDebugSources, : app : generateDebugAndroidTestSources]

PyQt4 : 장기 실행 루프 중에 GUI가 멈춤

GitLab CI가 실행중인 NodeJS 서버에서 멈춤

Impala 쿼리가 실행 중 상태에서 멈춤

Xcode가 실행중인 놀이터에서 멈춤

Fedora 23 : "dnf 업데이트"가 "트랜잭션 실행 중"에서 멈춤

Fedora 23 : "dnf 업데이트"가 "트랜잭션 실행 중"에서 멈춤

시스템 컨텍스트에서 gpupdate 실행 중 메모리에 멈춤

Resilience4J 스레드가 실행 중 상태에 영원히 멈춤

Gradle 빌드 실행 중 멈춤

다른 PHP 스크립트가 실행되는 동안로드 중 PHP 페이지가 멈춤

xcode 7 베타가 "iPhone 6에서 xxxxx WatchKit 앱 실행 중"에서 멈춤

applescript가 실행될 때 Finder 응용 프로그램이 중단/멈춤

AMLS 실험 실행이 '실행 중'상태로 멈춤

부팅 중 가끔 멈춤

http 실행시 코드가 멈춤

Julia를 실행할 때 Emacs가 멈춤

데이터베이스 생성 중 명령 행에 멈춤

PC가 DMI 풀 확인 중 멈춤-여러 단계 수행

Java로 프로세스를 실행 중이며 프로세스가 끝날 때까지 멈춤

done ()에도 불구하고 테스트 실행 후 Jest가 멈춤

Jenkins에서 실행할 때 NPM 테스트가 이상하게 멈춤

별도의 스레드에서 실행중인 경우에도 QT GUI가 멈춤

프로젝트 빌드가 실패하면 Android Studio가 중단 / 멈춤

x 실행 후 Bash 스크립트가 멈춤

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관