[java] Java Cucumber에서 결과 보고서 작성하기

Cucumber는 테스트 결과를 자동화된 방식으로 보고서로 작성하는 강력한 도구입니다. TestNG, JUnit 및 Gradle과 같은 다양한 프레임워크를 지원하며, 테스트 실행 후 자동으로 결과 보고서를 생성할 수 있습니다. 이 문서에서는 Java Cucumber에서 결과 보고서를 작성하는 방법에 대해 설명하겠습니다.

1. 의존성 추가

Cucumber에서 결과 보고서를 작성하기 위해 먼저 의존성을 추가해야 합니다. pom.xml 파일에 다음의 의존성을 추가합니다.

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-reporting</artifactId>
    <version>5.2.0</version>
    <scope>test</scope>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음의 의존성을 추가합니다.

testImplementation 'io.cucumber:cucumber-reporting:5.2.0'

의존성을 추가한 후에는 프로젝트를 빌드하여 의존성을 다운로드받도록 합니다.

2. 결과 보고서 생성 설정하기

Cucumber에서 결과 보고서를 생성하기 위해 After 어노테이션과 CucumberOptions 어노테이션을 사용합니다. 테스트가 실행된 후에는 보고서를 생성하기 때문에, 각 시나리오가 종료되면 @After 메서드를 호출하여 보고서를 작성합니다.

import io.cucumber.core.api.Scenario;
import io.cucumber.java.After;
import io.cucumber.java.Before;

public class Hooks {
    @After
    public void generateReport(Scenario scenario) {
        // 보고서를 생성하는 코드 작성
    }
}

3. 보고서 작성 코드 작성하기

generateReport 메서드에서 보고서를 작성하는 코드를 작성해야 합니다. Cucumber Reporting 라이브러리를 사용하여 결과를 html 또는 json 형식으로 작성할 수 있습니다.

아래는 보고서를 최종적으로 html 형식으로 작성하는 예시 코드입니다.

import io.cucumber.core.api.Scenario;
import io.cucumber.java.After;
import io.cucumber.java.Before;
import io.cucumber.plugin.ConcurrentEventListener;
import io.cucumber.plugin.event.EventPublisher;
import io.cucumber.plugin.event.TestRunFinished;

public class Hooks implements ConcurrentEventListener {
    private CucumberHTMLReporter reporter;

    @Before
    public void setUp() {
        reporter = new CucumberHTMLReporter(Paths.get("report.html"));
    }

    @After
    public void generateReport(Scenario scenario) {
        reporter.addTestResult(scenario);
    }

    @Override
    public void setEventPublisher(EventPublisher publisher) {
        publisher.registerHandlerFor(TestRunFinished.class, this::writeReport);
    }

    private void writeReport(TestRunFinished event) {
        reporter.finishReport();
    }
}

4. 실행하고 보고서 확인하기

이제 테스트를 실행하고 결과 보고서를 확인할 수 있습니다. 테스트가 완료되면 report.html 파일이 생성되고, 이 파일을 웹 브라우저로 열어 결과를 확인할 수 있습니다.

참고 자료