[java] Java Cucumber에서 테스트 리포트 이쁘게 꾸미기

Cucumber는 자바로 작성된 BDD(Behavior-Driven Development) 프레임워크로, 테스트 시나리오를 기반으로 애플리케이션을 개발하는데 사용됩니다. Cucumber를 사용하면 테스트를 쉽게 작성하고 실행할 수 있으며, 실행한 테스트의 결과를 리포트로 확인할 수도 있습니다.

기본적으로 Cucumber는 테스트 리포트를 단순한 형식으로 제공합니다. 그러나 리포트를 좀 더 이쁘게 꾸미고 싶은 경우도 있을 것입니다. 이번 블로그에서는 Java Cucumber에서 테스트 리포트를 이쁘게 꾸미는 방법을 알아보겠습니다.

1. Cucumber HTML Formatter 사용하기

Cucumber는 HTML 리포트를 생성할 수 있는 다양한 플러그인을 제공합니다. 그 중에서도 cucumber-reporting이라는 플러그인을 사용하여 테스트 리포트를 생성하는 방법을 알아보겠습니다.

먼저, Maven 또는 Gradle을 사용하여 cucumber-reporting 플러그인을 프로젝트에 추가해야 합니다. Maven의 경우 pom.xml 파일에 다음과 같이 의존성을 추가합니다.

<dependency>
    <groupId>net.masterthought</groupId>
    <artifactId>cucumber-reporting</artifactId>
    <version>5.4.1</version>
</dependency>

Gradle의 경우 build.gradle 파일에 다음과 같이 의존성을 추가합니다.

compile group: 'net.masterthought', name: 'cucumber-reporting', version: '5.4.1'

의존성을 추가한 후에는 Cucumber 실행 시 cucumber-reporting 플러그인을 사용하도록 설정해야 합니다. 이를 위해 CucumberOptions 어노테이션에 plugin 속성을 추가하고, 리포트를 저장할 경로를 지정합니다.

@CucumberOptions(
    plugin = {"json:target/cucumber-report.json"}
)
public class MyCucumberTest {
}

위 코드에서는 json 형식의 리포트를 생성하고, target 폴더에 cucumber-report.json 파일로 저장하도록 설정하였습니다.

테스트를 실행하면 cucumber-report.json 파일이 생성됩니다. 이제 이 파일을 가지고 HTML 테스트 리포트를 생성할 수 있습니다. 다음과 같이 Java 코드를 작성해보세요.

import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class ReportGenerator {
    public static void main(String[] args) {
        File reportOutputDirectory = new File("target");
        List<String> jsonFiles = new ArrayList<>();
        jsonFiles.add("target/cucumber-report.json"); // 생성된 json 리포트 파일 경로

        String projectName = "My Project";
        Configuration configuration = new Configuration(reportOutputDirectory, projectName);
        configuration.setBuildNumber("1.0");

        ReportBuilder reportBuilder = new ReportBuilder(jsonFiles, configuration);
        reportBuilder.generateReports();
    }
}

위 코드를 실행하면 target 폴더에 cucumber-html-reports 폴더가 생성되고, 그 안에 HTML 테스트 리포트가 생성됩니다. 이제 생성된 리포트를 브라우저로 열어보면 이쁜 형태로 테스트 결과를 확인할 수 있습니다.

2. 추가적인 스타일링

HTML 리포트를 생성한 후에도 추가적인 스타일링을 진행할 수 있습니다. HTML, CSS, JavaScript를 이용하여 리포트를 세부적으로 꾸밀 수 있습니다. 예를 들어, 리포트 헤더에 로고 이미지를 추가하거나, 테스트 결과를 그래프로 시각화하는 등의 작업을 할 수 있습니다.

HTML 템플릿 파일을 수정하거나 JavaScript 파일을 추가하여 원하는 스타일을 적용할 수 있습니다. 자세한 내용은 Cucumber Reporting 문서를 참고하시기 바랍니다.

결론

Java Cucumber에서 테스트 리포트를 이쁘게 꾸미는 방법을 알아보았습니다. cucumber-reporting 플러그인을 사용하여 HTML 테스트 리포트를 생성하고, 필요에 따라 추가적인 스타일링을 적용할 수 있습니다. 이를 통해 테스트 결과를 보다 직관적이고 보기 좋은 형태로 확인할 수 있습니다. 다음 번 Cucumber 프로젝트에서는 이를 적용해보는 것도 좋을 것입니다.