Gitlab CI - 将失败的测试结果发布到页面

问题描述 投票:0回答:2

我正在使用

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
gradle junit gitlab gitlab-ci gitlab-pages
2个回答
7
投票

我通过在

when: always
阶段末尾添加
pages
解决了这个问题。现在,无论依赖阶段的退出代码如何,它都会执行该阶段。


0
投票

只需在工件部分添加when:always

测试: 阶段:测试 允许失败: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 
© www.soinside.com 2019 - 2024. All rights reserved.