Gitlab CI - 将失败的测试结果发布到页面
Gitlab CI - Publish Failed Test Results to Pages
我正在使用 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
中的内容:(可以找到我的存储库 HERE)
版本 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
我通过在 pages
阶段的末尾添加 when: always
解决了这个问题。它现在执行该阶段,而不管依赖阶段的退出代码如何。
我正在使用 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
中的内容:(可以找到我的存储库 HERE)
版本 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
我通过在 pages
阶段的末尾添加 when: always
解决了这个问题。它现在执行该阶段,而不管依赖阶段的退出代码如何。