0

스프링 부트 기반 응용 프로그램이 있고 pom.xml 파일은 아래와 같이 구성됩니다.maven-failsafe-plugin을 통해 spring-boot 기반 응용 프로그램의 통합 테스트를 실행하는 방법은 무엇입니까?

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.7.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <classifier>exec</classifier> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>2.20.1</version> 
       <configuration> 
        <includes> 
         <include>**/IT*.java</include> 
         <include>**/*IT.java</include> 
         <include>**/*ITCase.java</include> 
        </includes> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

다음과 같이 DemoIT라는

package com.example.demo; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class DemoApplication { 

    public static void main(String[] args) { 
     System.out.println("This is a demo application+++++++++++++++++++"); 
     SpringApplication.run(DemoApplication.class, args); 
    } 
} 

그리고 내 통합 테스트 클래스 다음과 같이 클래스 DemoApplication에 위치한 main 방법.

package com.example.demo; 

import org.junit.Test; 

public class DemoIT { 

    @Test 
    public void test() { 
     System.out.println("This is a integration test.=============="); 
    } 
} 

내가 mvn clean verify 명령을 실행할 때 지금 여기 내 질문이다는 통합 클래스 DemoIT이 실행하는데, 그것은 수행한다. 그러나 내 DemoApplication이 실행되고 있지 않습니다. 그래서 스프링 - 부트 애플리케이션 컨텍스트 (DemoApplication이 실행 필요)에서 통합 테스트를 실행해야하는지 궁금합니다. 어떻게해야합니까?

답변

0
내 응용 프로그램이 기반으로하므로 봄 부팅

spring-boot-maven-pluginpom.xml에 포함되어 있습니다, 그래서 내가해야 할 일을해야합니다 우리의 봄 부팅 응용 프로그램의 수명주기는 물론 주변 관리하기 위해 다음과 같은 구성을 추가하는 것입니다. 내가 mvn clean verify 발행 할 때

<executions> 
    <execution> 
    <id>pre-integration-test</id> 
    <goals> 
     <goal>start</goal> 
    </goals> 
    </execution> 
    <execution> 
    <id>post-integration-test</id> 
    <goals> 
     <goal>stop</goal> 
    </goals> 
    </execution> 
</executions> 

그런 다음, 스프링 부팅 응용 프로그램은 우리의 통합 테스트 코드 실행됩니다.

+0

이것은 기본적으로 발생합니다. 권리?? 내가 틀렸다면 용서해라. 나는 이것에 초보적이다! –

관련 문제