Jest.js 如何使基于${PIPESTATUS[0]}的作业失败

pvabu6sv  于 2023-03-16  发布在  Jest
关注(0)|答案(1)|浏览(179)

当单元测试失败时,Jest返回一个非零退出代码
但是当我输出时退出代码被抑制了
如何根据Linux环境变量${PIPESTATUS[0]}使作业失败?
我已验证PIPESTATUS[0]具有非零值
我尝试退出${PIPESTATUS[0]},但不起作用
我尝试了if语句,但语法可能不正确

- name: Install & test
    id: unit_coverage_status
    run: |
      npm ci
      npm run test-coverage | tee ./unit-coverage.txt
      echo "Test coverage exit code: ${PIPESTATUS[0]}"
      if ${PIPESTATUS[0]} == 0;
      then
        echo "Unit tests passed"            
      else
        echo "Unit tests failed"
        exit 1
      fi

生成txt后,我将使用以下步骤将结果添加到PR中

- name: Jest integration coverage comment
    uses: MishaKav/jest-coverage-comment@main
    with:
      coverage-path: ./int-coverage.txt       
      title: Integration Test Coverage
kmpatx3s

kmpatx3s1#

我能够通过向命令中添加&& exit ${PIPESTATUS[0]}来捕获测试失败。

- name: Install & test
    id: unit_coverage_status
    run: |
      npm ci
      npm run test-coverage | tee ./unit-coverage.txt && exit ${PIPESTATUS[0]}

只有当测试通过时才会生成覆盖注解,如果测试失败了,我更关心的是显示它而不是显示它的覆盖。

相关问题