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

GitLab CI/CD流水线报错:无匹配文件,需确认工件相对工作目录

解决GitLab CI/CD流水线JUnit报告找不到的问题

问题原因

报错提示找不到gosecuri/target/surefire-reports/TEST-*.xml文件,核心原因是JUnit报告的路径配置错误。Maven执行clean test后,Surefire插件默认会在项目根目录的target/surefire-reports/下生成测试报告,而非你配置的gosecuri/子目录下。

解决方案

1. 修正JUnit报告路径

修改流水线配置中reports.junit的路径,去掉多余的gosecuri/前缀:

stages:
  - test
image: "maven:3.8.7"
variables:
  MAVEN_OPTS: >-
    -Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository
    -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
cache:
  paths:
    - .m2/repository/
    - target/
test-job:
  stage: test
  services:
    - selenium/standalone-chrome
  script:
    - echo "Compiling the code..."
    - mvn --version
    - mvn "$MAVEN_CLI_OPTS" clean test -Dhost=selenium__standalone-chrome
    - Get-Command zip
    # 可选:添加命令验证报告文件是否存在(Windows Runner)
    - Get-ChildItem target\surefire-reports
  artifacts:
    when: always
    paths:
      - target/
    reports:
      junit:
        - target/surefire-reports/TEST-*.xml  # 修正此处路径

2. 验证报告生成情况

如果修改路径后仍报错,可以在script阶段添加目录查看命令,确认测试报告是否生成:

  • 若使用Windows Runner(PowerShell):Get-ChildItem target\surefire-reports
  • 若使用Linux/macOS Runner:ls -la target/surefire-reports/

3. 检查Maven测试执行状态

确保mvn clean test命令实际执行了测试用例:

  • 查看流水线日志中Maven的输出,确认是否有测试用例执行记录
  • 若测试用例未执行,检查pom.xml中Surefire插件的配置是否正确,或测试类是否符合命名规范(默认要求以Test结尾)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:12:49