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

M1 MacBook版VS2022中NUnit测试用例无法执行如何解决

M1 设备 Visual Studio 2022 运行 NUnit 测试缺失依赖修复方案

报错触发场景

  • 设备环境:M1 架构 MacBook,安装 Visual Studio 2022 for Mac
  • 项目结构:新建控制台应用 + NUnit 单元测试类库,单元测试项目TDDSample.UnitTest目标框架为 .NET 6.0.6
  • 异常表现:项目可正常构建,运行单元测试时测试宿主进程退出,提示未找到依赖清单中指定的NUnit 3.13.3版本程序集lib/netstandard2.0/nunit.framework.dll

根因说明

该问题属于ARM架构环境下的兼容异常:

  1. Visual Studio 2022 for Mac 的测试运行器在Any CPU配置下,存在NuGet依赖路径识别偏差,没有正确将NUnit的netstandard2.0目标程序集复制到测试运行的工作目录
  2. 部分版本的.NET 6 SDK在M1设备上生成deps.json依赖清单时,对跨目标框架的程序集路径解析存在bug

修复操作

按顺序执行以下操作,每步完成后重新生成项目再验证测试运行状态:

  • 清理全链路缓存
    关闭Visual Studio,在解决方案根目录删除所有项目下的bin、obj文件夹,终端执行命令清除全局NuGet缓存:
    dotnet nuget locals all --clear
    
    重新打开解决方案后,先执行「还原NuGet包」操作,再重新生成整个解决方案。
  • 修正测试项目运行架构
    打开TDDSample.UnitTest项目属性,将目标平台从默认的「Any CPU」强制修改为ARM64,保存配置后重新生成。如果仍有异常,可临时开启x86模拟运行选项验证是否为架构识别问题。
  • 调整NUnit依赖版本
    将NUnit相关NuGet包升级到3.13.3以上的最新稳定版,高版本已针对ARM64架构的路径解析问题做了适配。如果暂时无法升级版本,可手动添加对nunit.framework.dll的显式引用,将该dll的「复制到输出目录」属性设置为「如果较新则复制」。
  • 绕过VS测试资源管理器验证
    打开终端进入单元测试项目所在目录,直接执行CLI命令运行测试:
    dotnet test TDDSample.UnitTest.csproj
    
    如果命令行下测试可正常运行,说明异常来自Visual Studio测试资源管理器的本地缓存,重置VS所有用户设置后重启即可恢复。

禁止手动修改构建生成的TDDSample.UnitTest.deps.json文件,所有手动修改的内容会在下次项目构建时被自动覆盖,无法从根本解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:27:04