You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps构建单元测试无发布结果问题排查求助

分析Azure DevOps构建中“No results found to publish”的成因

针对你的.NET Framework 4.6.1项目结构(包含两个主项目和对应的测试项目),出现这个错误大概率是测试执行环节或者结果收集环节出了问题,我整理了几个最常见的原因:

  • 测试任务的文件路径配置错误
    Azure DevOps的测试任务(比如VSTest@2)需要精准定位到编译后的测试dll文件。如果你的配置路径太宽泛或者没排除无效目录,就可能扫不到正确的文件。比如:

    • 应该用**\bin\**\*Test.dll来指向输出目录下的测试dll,同时要添加排除规则**\obj\**,避免扫到未编译的中间文件。
    • 如果构建任务把输出文件放到了自定义的Artifact目录,测试任务的路径也要对应调整到这个目录下,不然会找不到生成的测试dll。
  • 测试项目未被正确构建
    先检查你的Azure DevOps构建任务(比如MSBuild@1)是否包含了所有测试项目:

    • 确认构建任务的项目路径是否覆盖了*.Test.csproj,比如是不是只指定了主项目的csproj,漏掉了测试项目?可以去构建日志里搜索测试项目名称,看有没有对应的编译记录。
    • 另外要确保测试项目的目标框架和主项目一致(都是.NET Framework 4.6.1),如果框架不匹配,测试项目可能编译失败,自然不会生成可执行的测试dll。
  • 选错了测试运行任务类型
    对于.NET Framework项目,一定要用VSTest@2任务来运行测试,别用DotNetCoreCLI任务——后者主要针对.NET Core/.NET 5+项目,对传统.NET Framework的支持有限,选错任务的话,测试根本跑不起来,更不会生成结果文件。

  • 测试结果文件未被正确收集或被清理
    测试任务默认会生成.trx格式的测试结果文件,但如果后续的清理任务把这些文件删除了,或者PublishTestResults@2任务的结果文件路径配置错误,就会出现“No results found”的提示:

    • 可以先去构建的“测试”标签页查看有没有测试运行的记录,如果连测试都没执行,那就是前面的测试任务配置有问题;如果测试执行了但没发布,那就是结果文件的路径没配对,建议把路径设为**\*.trx来覆盖所有生成的结果文件。
  • 测试项目本身存在问题
    先在本地运行测试看看是否正常:

    • 检查测试类和方法有没有添加对应的特性(比如MSTest的[TestClass]和[TestMethod]),没有这些特性的话,测试运行器会忽略它们。
    • 确认测试项目的引用是否完整,有没有缺失的NuGet包或者项目引用,本地跑不通的话,Azure DevOps上肯定也会失败。

内容的提问来源于stack exchange,提问作者user3535054

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:51:57