You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven环境下Cucumber HTML报告无法生成问题求助

问题描述

我反复检查了POM.XML和TestRunner.java的配置,执行mvn clean verify命令时cucumber.json能正常生成,但Cucumber HTML报告始终无法生成,对应的文件夹都不存在。已经排查两天仍未解决,求排查思路。

提供的配置文件

POM.XML配置

<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>

<groupId>com.xxx</groupId>
<artifactId>restassured-bdd</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <!-- Cucumber -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>7.16.1</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>7.16.1</version>
    </dependency>

    <!-- JUnit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>

    <!-- REST Assured -->
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>5.4.0</version>
        <scope>test</scope>
    </dependency>

    <!-- Hamcrest -->
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>2.2</version>
        <scope>test</scope>
    </dependency>

    <!-- Jackson -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.15.2</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>messages</artifactId>
        <version>24.1.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- Test runner -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.2.5</version>
            <configuration>
                <includes>
                    <include>**/TestRunner.java</include>
                </includes>
            </configuration>
        </plugin>

        <!-- Cucumber HTML Reporter -->
        <plugin>
            <groupId>net.masterthought</groupId>
            <artifactId>maven-cucumber-reporting</artifactId>
            <version>5.7.6</version>
            <executions>
                <execution>
                    <id>generate-cucumber-report</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <projectName>restassured-bdd</projectName>
                        <outputDirectory>${project.build.directory}/cucumber-html-reports</outputDirectory>
                        <inputDirectory>${project.build.directory}/cucumber</inputDirectory>
                        <jsonFiles>
                            <param>**/*.json</param>
                        </jsonFiles>
                    </configuration>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

TestRunner.java代码

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/resources/features",
        glue = "stepdefinitions",
        plugin = {"pretty", "json:target/cucumber/cucumber.json"},
        monochrome = true
)
public class TestRunner {}

排查思路

  • 验证插件执行流程:
    先单独执行mvn test确认测试正常运行、json文件生成,再执行mvn verify -DskipTests,观察报告插件是否触发执行(即使无json文件,至少能看到插件尝试运行的日志)。
  • 核对路径配置准确性:
    • 确认inputDirectory指向的target/cucumber目录下确实存在cucumber.json;可以手动打印${project.build.directory}的实际路径,验证是否与预期一致。
    • 把jsonFiles的匹配规则从**/*.json改为*.json,避免多层目录匹配逻辑导致找不到文件。
  • 检查版本兼容性:
    Cucumber 7.16.1与maven-cucumber-reporting 5.7.6可能存在适配问题,查看插件官方版本适配表,尝试升级插件到最新稳定版,或降级到明确兼容的版本。
  • 开启Maven调试日志:
    执行mvn clean verify -X,搜索maven-cucumber-reporting相关日志,确认插件是否被触发、是否有明确报错(如文件找不到、权限不足、依赖缺失等)。
  • 排查权限与目录问题:
    手动创建target/cucumber-html-reports目录,再执行命令,排除权限不足导致的文件夹无法创建问题。
  • 检查依赖冲突:
    执行mvn dependency:tree查看依赖树,排查是否存在cucumber、jackson等相关依赖的版本冲突,必要时排除冲突依赖。
  • 直接触发插件目标:
    跳过Maven生命周期,直接执行报告插件命令:mvn net.masterthought:maven-cucumber-reporting:generate,观察控制台输出的错误信息,定位问题。

内容的提问来源于stack exchange,提问作者Luke_Nuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:54:49