我正在使用
Gradle
创建一个简单的 java 项目,它会生成测试报告(即 BDD Cucumber、JUnit 等)。该项目部署到 Gitlab
,该项目是作为 Gitlab CI
流程的一部分构建的。
我的
JUnit
报告在相对于项目路径的文件夹 build/reports/tests/test/
中生成(作为 index.html
和一些 CSS
文件等)。
如何配置我的
.gitlab-ci.yml
以将build/reports/tests/test/
的内容发布到Gitlab页面即使在我的测试用例失败后?
这就是我的
.gitlab-ci.yml
中的内容:(我的仓库可以在这里找到)
版本 1:不向页面发布任何内容
image: java:8-jdk
stages:
- test
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
test:
stage: test
script:
- mkdir public
- ./gradlew test
artifacts:
paths:
- build/reports/tests/test/
only:
- master
after_script:
- mv build/reports/tests/test/* public
版本 2:由于
deploy
失败,因此不执行 test
阶段。
image: java:8-jdk
stages:
- test
- deploy
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
test:
stage: test
script:
- ./gradlew test
artifacts:
paths:
- build/reports/tests/test/
pages:
stage: deploy
dependencies:
- test
script:
- mkdir public
- mv build/reports/tests/test/* public
artifacts:
paths:
- public
only:
- master
我通过在
when: always
阶段末尾添加 pages
解决了这个问题。现在,无论依赖阶段的退出代码如何,它都会执行该阶段。
测试: 阶段:测试 允许失败:true 图片:mcr.microsoft.com/playwright:v1.35.1-focal
脚本: - | npm 安装 ci npm install -D @playwright/test npm i -D @playwright/测试 allure-playwright npm 安装 mysql 国家管理委员会 npx playwright install --with-deps npx playwright 安装 msedge npx 剧作家安装 chrome npx剧作家测试
超时:10小时#覆盖默认的gitlab运行器超时可选
文物: 路径: - ./剧作家报告/ - 。/截屏/ - ./报告/
*when: always*
expire_in: 7 days