繁体   English   中英

GitLab Flutter CI 失败并显示“tojunit:找不到命令”

[英]GitLab Flutter CI fails with “tojunit: command not found”

我正在使用以下.gitlab-ci.yml文件使用junit运行测试并将报告导出为 XML 工件:

image: cirrusci/flutter:stable

before_script:
  - flutter pub get
  - flutter clean
  - flutter --version

stages:
  - analyze-and-test

analyze-and-test:
  stage: analyze-and-test
  script:
    - flutter build aot
    - flutter analyze
   # - flutter test
    - flutter test --machine | tojunit -o report.xml
  artifacts:
    when: always
    reports:
      junit:
        - report.xml
  only:
    - master
    - merge_requests

该应用程序具有以下 package 依赖项:

dependencies:
  flutter:
    sdk: flutter
  junitreport: ^1.3.1

运行此管道时,我收到以下错误:

$ flutter test --machine | tojunit -o report.xml
/usr/bin/bash: line 139: tojunit: command not found
Unhandled exception:
FileSystemException: writeFrom failed, path = '' (OS Error: Broken pipe, errno = 32)

我试图弄清楚为什么这会失败。 应该找到该命令,因为在调用analyze-and-test之前,在before_script节中检索了 package。 我错过了什么?

看起来 tojunit 没有安装在 CI 机器上。 根据junitreport 安装说明,您应该运行此命令来下载程序并提供启动脚本:

pub global activate junitreport

所以首先将此命令添加到before_script阶段:

before_script:
 - flutter pub get
 - flutter clean
 - flutter --version
 - flutter pub global activate junitreport

尝试运行它。

接下来,如果{dart-cache}/bin目录不在您的路径中,您将收到警告,包括有关如何修复它的提示。 在这种情况下,您将需要向before_script添加更多命令(来自提示)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM