当前位置: 首页 > 知识库问答 >
问题:

Azure CI管道-DotNetCoreCLI@2任务错误

司马飞鸿
2023-03-14

我使用开发了WebAPI项目。NET核心3.1.0和使用XUnit的集成测试。

我在Azure DevOps CI管道(Azure pipelines.yaml)中添加了以下任务以运行集成测试项目。

 - task: DotNetCoreCLI@2
   displayName: 'Run API integration tests - $(buildConfiguration)'
   inputs:
    command: 'test'
    arguments: '--configuration $(buildConfiguration)'
    publishTestResults: true
    projects: '**/IntegrationTests/IntegrationTests.csproj'

我在管道执行过程中遇到以下错误。如何解决此错误?

##[错误]错误:进程“/usr/bin/dotnet”失败,退出代码为1

##[警告]。NET 5与较旧的Nuget版本存在一些兼容性问题(

信息:Azure管道托管代理已更新,现在包含。Net 5. x SDK/运行时以及较旧的。Net Core版本目前是lts.除非您已经锁定了项目的SDK版本,否则5. x SDK可能会被拾取,与以前的版本相比,它可能具有中断行为。你可以在这里了解更多关于突破性变化的信息:https://docs.microsoft.com/en-us/dotnet/core/tools/和https://docs.microsoft.com/en-us/dotnet/core/compatibility/。要了解更多此类更改和故障排除,请参阅此处:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting

##[错误]Dotnet命令在以下项目上失败,退出代码为非零:/home/vsts/work/1/s/src/IntegrationTests/IntegrationTests。项目文件

共有2个答案

云飞翮
2023-03-14

我遇到了完全相同的问题,不同的是我的解决方案。net5应用程序以及。netcore3。1个应用程序。

我可以通过在azure管道中指定较新的dotnet运行时来解决此问题:

- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    packageType: runtime
牟子真
2023-03-14

我有一个微笑的问题,但与。netcore 2.2。问题是,测试在开始恢复测试包之前尝试构建,因此在测试运行或构建之前失败。帮助我克服这个问题的一件事是以下常见问题:

大多数dotnet命令(包括生成、发布和测试)都包含隐式还原步骤。即使您在较早的步骤中成功运行了dotnet还原,这也会对经过身份验证的提要失败,因为较早的步骤将清理它所使用的凭据。若要解决此问题,请将--no-还原标志添加到Arguments文本框中。

我还了解到,DotNetCLI在像这里这样的测试中遇到了一些问题

因此,我最终使用一个脚本来解决这个问题以及与包恢复相关的其他问题。

- script: dotnet test '**/IntegrationTests/IntegrationTests.csproj' --configuration $(buildConfiguration) --logger trx;LogFileName=C:\temp\results
  displayName: 'Run API integration tests - $(buildConfiguration)'

我希望这将帮助你或任何有类似问题的人。

 类似资料:
  • 是否可以使用Azure Devops构建管道和DotNetCoreCLI@2任务或者我们必须恢复使用脚本并手动调用命令吗? 来自我的管道YAML的片段 从我的. csproj: 我使用这里的文档来编写任务,但并不总是很好。 编辑:我应该补充说,目前构建完全失败,因为:

  • 我在运行具有以下项目/文件夹结构的Azure构建管道时遇到问题(不需要的行为)。 我的存储库的根文件夹有两个主要文件夹: 前端(ASP.Net Core 2.x 我正在尝试构建两个单独的Azure管道,一个用于后端,另一个用于前端,因此我使用参数指定正确的路径。 和命令运行正常,并且只恢复/构建/测试文件夹,但是命令正在为两个文件夹运行:后端 这是我的yaml文件: 我尝试了不同的文件夹路径,但它

  • 本文向大家介绍Angular 2 内置管道,包括了Angular 2 内置管道的使用技巧和注意事项,需要的朋友参考一下 示例 Angular2带有一些内置管道: 管 用法 例 DatePipe date {{ dateObj | date }} // output is 'Jun 15, 2015' UpperCasePipe uppercase {{ value | uppercase }} /

  • 每个新创建的任务都是 org.gradle.api.DefaultTask 类型, org.gradle.api.Task 的标准实现,DefaultTask 所有的域都是私有的,意味着他们只能通过 setter 和 getter 方法来访问,庆幸的是Groovy提供了一些语法糖来允许你通过名字来使用域。 管理项目的版本 许多公司或者开源组织有他们自己的发布版本的措施,一般用主版本号和次版本号来表

  • 用 ceph-deploy 建立一个集群后,你可以把客户端管理密钥和 Ceph 配置文件发给其他管理员,以便让他用 ceph 命令管理集群。 创建一管理主机 要允许一主机以管理员权限执行 Ceph 命令,用 admin 命令: ceph-deploy admin {host-name [host-name]...} 分发配置文件 要把改过的配置文件分发给集群内各主机,可用 config push

  • 在San CLI中主要通过san serve和san build命令进行生产和开发环境的打包,San的脚手架工程内置了四个命令,包括启动本地服务、生产环境打包、打包分析、现代模式打包等,脚手架工程的package.json内可执行的命令有: npm run start // 打包+启动本地服务 npm run build // 打包发布 npm run analyzer // 打包分析 npm r