Cucumber/JUnit 5를 사용하는 극작가 - JUnit 5 테스트 스위트 및 maven 새로 설치

JUnit 5 테스트 스위트



이전 JUnit 버전에는 테스트를 실행하는 TestRunner 클래스가 있었습니다.

JUnit5에서는 이제 테스트 스위트를 통해 이 작업을 수행합니다. 시리즈의 다른 게시물을 따라가서 maven 명령 mvn clean install을 실행하고 테스트가 전혀 실행되지 않는 것을 확인했다면 이것이 이유일 수 있습니다. Surefire 플러그인을 사용한 Maven 설치는 패턴과 일치하는 테스트 클래스를 찾습니다.
-"/Test*.java"- "Test"로 시작하는 모든 하위 디렉토리와 모든 Java 파일 이름을 포함합니다.
-"/Test.java"- 모든 하위 디렉토리와 "Test"로 끝나는 모든 Java 파일 이름을 포함합니다.
-"/*Tests.java"- "Tests"로 끝나는 모든 하위 디렉토리와 모든 Java 파일 이름을 포함합니다.
-"*/*TestCase.java"- "TestCase"로 끝나는 모든 하위 디렉토리와 모든 Java 파일 이름을 포함합니다.

JUnit5 테스트 제품군에 대한 지원을 포함하려면 pom.xml에 junit-platform-suite 종속성이 필요합니다.

        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <scope>test</scope>
        </dependency>


위의 항목 외에 일치해야 하는 다른 클래스 이름을 지원해야 하는 경우 아래와 같이 pom.xml의 Surefire 구성에 포함하기만 하면 됩니다.

        <configuration>
          <includes>
            <include>example.java</include>
            <include>**/*IT.java</include>
            <include>**/*EndToEnd.java</include>
          </includes>
        </configuration>


내 예에서는 DemoRequestTests라는 테스트 도구 모음을 만들 것입니다. 여기에 주석을 포함하기만 하면 됩니다.

  • : JUnit5 테스트 스위트 클래스
  • @SuiteDisplayName("테스트 사용 사례"): 테스트 도구 모음의 이름은 테스트 사용 사례임
  • @IncludeEngines("cucumber"): Cucumber를 사용하여 이 테스트 스위트 실행
  • @SelectClasspathResource("Features"): 기능 파일이 있는 위치(이 경우 test/resources/Features 아래)
  • @ConfigurationParameter: 사용되지 않지만, 오이 엔진이 자동으로 선택하지 않는 디렉토리에 단계가 있는 경우 패키지 경로를 단계 정의 글루 클래스로 설정해야 합니다.

  • 이제 mvn clean install을 실행할 수 있으며 생성한 모든 테스트 스위트가 자동으로 실행됩니다.

    DemoRequestTests.java용 코드

    package io.tpan.suites;
    
    import org.junit.platform.suite.api.*;
    
    import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;
    
    @Suite
    @SuiteDisplayName("Test Use Cases")
    @IncludeEngines("cucumber")
    @SelectClasspathResource("Features")
    //@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "steps")
    public class DemoRequestTests {
    }
    


    항상 그렇듯이 코드는 Github에서 사용할 수 있습니다.

    좋은 웹페이지 즐겨찾기