尝试使用"ReportGenerator"工具创建报告作为Azure DevOpss YAML pipleine的一部分时, 尽管我在上一步中安装了该工具,但仍抛出了以下错误。
- script: dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.6.1
displayName: 'Install ReportGenerator tool'
continueOnError: true
- script: reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" -reporttypes:Cobertura;htmlInline
displayName: Generate code coverage report
continueOnError: true
错误:"报告生成器"未被识别为内部或外部命令, 可操作的程序或批处理文件。 ##[错误]Cmd.exe 以代码"1"退出。
添加日志 安装步骤: 脚本内容: dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version 4.6.1 ============================ 启动命令输出 ============================= "C:\windows\system32\cmd.exe"/D/E:ON/V:OFF/S/C "CALL "E:\Agent_work_temp\d9535a65-152b-4822-a4f2-7e58c11f2418.cmd" 您可以使用以下命令调用该工具:报告生成器 工具"dotnet-reportgenerator-globaltool"(版本"4.6.1"(已成功安装。 整理:安装报告生成器工具
执行工具: 脚本内容: 报告生成器 "-报告:E:\Agent_work_temp/**/*.cobertura.xml" "-targetdir:E:\Agent_work\79\s/coverlet/reports" -报告类型:Cobertura;html内联 ============================ 启动命令输出 ============================= "C:\windows\system32\cmd.exe"/D/E:ON/V:OFF/S/C "CALL "E:\Agent_work_temp\53dbc699-e878-4458-aaf2-8e69e5c4f09a.cmd" "报告生成器"不被识别为内部或外部命令, 可操作的程序或批处理文件。 ##[错误]Cmd.exe 以代码"1"退出。
当您尝试在 Linux 机器上执行此操作时,存在一个已知错误。安装报告生成器后,请尝试添加此附加步骤以更新 PATH:
- script: echo "##vso[task.prependpath]$HOME/.dotnet/tools"
所以整个解决方案看起来像这样:
- task: DotNetCoreCLI@2
displayName: Install ReportGenerator Global Tool
inputs:
command: custom
custom: tool
arguments: install dotnet-reportgenerator-globaltool -g
- script: echo "##vso[task.prependpath]$HOME/.dotnet/tools"
displayName: 'Update PATH'
- script: reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" -reporttypes:Cobertura;htmlInline
displayName: Generate code coverage report
continueOnError: true
以下 YAML 文件应完成这项工作:
- script: dotnet tool install --tool-path tools dotnet-reportgenerator-globaltool --version 4.6.1
displayName: 'Install ReportGenerator tool'
continueOnError: true
- script: ./tools/reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" "-reporttypes:Cobertura;HtmlInline"
还可以使用 Azure DevOps 扩展:
https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator
用法:
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
displayName: ReportGenerator
inputs:
reports: '$(Agent.TempDirectory)/**/*.cobertura.xml'
targetdir: '$(Build.SourcesDirectory)/coverlet/reports'
reporttypes: 'Cobertura;HtmlInline'
这是因为您使用的是自承载代理。在代理上安装新软件后,必须重新启动代理才能在池中显示新功能,以便生成可以运行。
只需转到代理计算机上的任务管理器,然后重新启动生成代理服务。