NUnit3TestDiscoverer抛异常,构建后Test Explorer无测试显示
VS2015中NUnit3测试构建后消失并报“对象引用未设置”的解决建议
额外可尝试的解决方法
- 清理重装NuGet依赖:彻底卸载NUnit和NUnit3TestAdapter,删除项目根目录的
packages文件夹,重新安装适配VS2015的版本组合——比如NUnit v3.12.0搭配NUnit3TestAdapter v3.17.0(新版本适配器对VS2015兼容性可能存在问题)。 - 检查输出目录权限:确认测试项目的输出目录(默认
bin/Debug/bin/Release)无系统权限限制,避免测试适配器无法读取构建后的.dll文件。 - 禁用并行测试发现:在测试项目中添加
nunit3.config配置文件,写入以下内容强制关闭并行发现逻辑,规避并发状态下的空引用异常:<nunit> <test-runner parallel="off" /> </nunit> - 校验测试特性兼容性:确保测试类和方法使用NUnit3标准特性,比如用
[OneTimeSetUp]替代旧版[TestFixtureSetUp],避免过时特性触发适配器解析错误。
是否需要提交NUnit Bug报告?
如果上述方法都无法彻底解决问题,建议提交Bug报告。这个空引用异常大概率是NUnit3TestAdapter在VS2015环境下处理架构切换时的状态异常。提交时需提供:
- VS2015具体版本号(比如Update 3)
- NUnit和NUnit3TestAdapter的精确版本
- 目标.NET Framework版本(4.6/4.6.2)
- 完整重现步骤(加载解决方案→可见测试→构建后测试消失的全流程)
- 临时解决步骤细节
- VS输出窗口捕获到的异常完整堆栈信息(若能获取)
优化临时解决步骤体验
可将架构绑定操作保存为VS解决方案配置:
- 点击解决方案平台下拉框,选择“配置管理器”
- 创建新的解决方案配置(比如命名为
Test-x86) - 将对应测试项目的平台设为x86,同时在“测试→测试设置→默认CPU架构”中选择x86
- 同理创建
Test-x64配置,后续直接选择预设配置即可,无需手动重复操作
内容的提问来源于stack exchange,提问作者PapaAtHome
相关产品推荐
相关产品推荐

