Azure DevOps YAML流水线运行.NET Core自动化测试无结果咨询
问题根因与修复方案
核心根因
- 你注释
UseDotNet@2任务属于错误调整:Azure DevOps默认代理没有适配.NET Core 3.1的测试运行环境,默认会调用.NET Framework 4.0 X86的运行器执行.NET Core测试,自然识别不到任何用例 - 直接指定
.csproj文件作为VSTest的输入是无效操作:VSTest需要执行编译后的测试DLL文件,而非源码项目文件 - 测试用例不需要在名称末尾加Test标识,只要标记了
[Fact]属性即可被正确识别
具体修复步骤
- 恢复
UseDotNet@2任务,明确指定安装.NET Core 3.1版本的SDK,示例配置:
- task: UseDotNet@2 inputs: packageType: 'sdk' version: '3.1.x' installationPath: $(Agent.ToolsDirectory)/dotnet
- 新增.NET 构建任务,确保测试项目被正确编译生成对应DLL,示例配置:
- task: DotNetCoreCLI@2 inputs: command: 'build' projects: '**/AutomatedRegression.csproj' arguments: '--configuration Release'
- 修改
VSTest@2任务的匹配规则,指向编译后的测试DLL,同时指定运行框架为.NET Core 3.1,示例配置:
- task: VSTest@2 inputs: testSelector: 'testAssemblies' testAssemblyVer2: | **\*Tests.dll !**\*TestAdapter.dll !**\obj\** searchFolder: '$(System.DefaultWorkingDirectory)' otherConsoleOptions: '/Framework:.NETCoreApp,Version=v3.1'
- 如果调整后依旧无法识别测试用例,检查测试项目是否已经安装了以下必要NuGet包,缺一不可:
Microsoft.NET.Test.Sdkxunit(对应你使用的[Fact]属性所属的测试框架)xunit.runner.visualstudio
内容的提问来源于stack exchange,提问作者Pheonix SFX
相关产品推荐
相关产品推荐

