我是初学者,这是我第一次为我的 maven java selenium 项目构建 CI/CD 管道,并尝试通过在本地计算机中安装运行器来本地运行管道。 每次运行管道时,我都会收到一条错误,指出“警告:gosecuri/target/surefire-reports/TEST-*.xml:没有匹配的文件。确保工件路径相对于工作目录(C:\GitLab-Runner uilds\CXWJTzxhV\ssc-onyx-qa\ssc-onyx-test-automation) 错误:没有要上传的文件”请有人帮助我
管道代码如下:-
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
artifacts:
when: always
paths:
- target/
reports:
junit:
- gosecuri/target/surefire-reports/TEST-*.xml
您正在指示 Gitlab 在此目录中查找 xml 文件:
gosecuri/target/surefire-reports/TEST-*.xml
,位于此处管道文件的末尾:
reports:
junit:
- gosecuri/target/surefire-reports/TEST-*.xml
Gitlab 告诉你它的工作目录是
C:\GitLab-Runner\builds\CXWJTzxhV\0\ssc-onyx-qa\ssc-onyx-test-automation
。这些是完全不同的路径,因此运行程序无法找到您指向的文件。
Gitlab-Runner 的工作目录与您所在的工作目录不同。它可以访问您的文件,并且如果您使用相对文件路径,则能够确定您将其指向哪个文件。如果您在 gitlab.com 上运行管道,这会更直观,因为更清楚的是,他们正在使用与您的计算机不同的隔离环境,但您可以将其想象为本地计算机的情况相同跑步者也是。 Runner 在您的计算机上使用隔离环境,可以访问您在 Gitlab 上的文件。
如果您坚持使用硬编码路径,您可以将其设置为相对于
C:\GitLab-Runner\builds\CXWJTzxhV\0\ssc-onyx-qa\ssc-onyx-test-automation
并找出目录开始与文件夹中的目录重叠的位置,但这将在您的整个目录中使用大量“ls”命令管道,不是最佳实践。