[英]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.