[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
파일이 생성되고, 이 파일을 웹 브라우저로 열어 결과를 확인할 수 있습니다.