VS2017 15.6.4搭配NUnit3.9测试无法运行,提示“无可用测试”求助
解决VS2017中NUnit测试无法识别的问题
针对你遇到的测试呈灰色状态、右键运行提示“No test is available”的问题,结合你的环境(VS2017 15.6.4、NUnit 3.9.0、NUnit3TestAdapter 3.10.0)和代码,我整理了几个实用的排查和解决步骤:
1. 确认测试项目的基础配置
- 如果你的测试项目是**.NET Core**类型,务必确保已安装
Microsoft.NET.Test.SdkNuGet包——这是.NET Core项目识别测试的核心依赖,很多人会忽略这一点。 - 检查项目的目标框架:尝试切换到兼容的框架版本(比如从.NET Core 2.0切换到.NET Framework 4.6.1,或者反之),某些框架版本与VS版本的组合可能存在适配bug。
2. 验证NUnit包的安装方式
- 确保你是通过NuGet包管理器安装的
NUnit和NUnit3TestAdapter,而非手动添加dll引用。手动引用容易出现版本不匹配、文件缺失等问题。可以尝试先卸载这两个包,再重新安装适配VS2017的稳定版本(比如NUnit 3.13.3 + NUnit3TestAdapter 4.5.0)。
3. 清理VS缓存并重建项目
VS的缓存偶尔会导致测试发现异常,按以下步骤操作:
- 关闭VS,删除解决方案下所有项目的
bin和obj文件夹; - 重新打开VS,执行清理解决方案(右键解决方案 → 清理),再执行重建解决方案;
- 点击测试资源管理器的重新运行所有测试按钮,或者右键测试项目选择运行测试。
4. 检查测试适配器的启用状态
- 打开VS的工具 → 选项 → 测试 → 测试适配器,确认
NUnit 3 Test Adapter是勾选启用的; - 切换测试处理器架构:点击测试菜单 → 测试设置 → 默认处理器架构,尝试切换到
X64或X86,有时候架构不匹配会导致测试无法加载。
5. 查看详细测试日志定位问题
- 打开测试 → 选项 → 测试 → 常规,将“测试日志详细程度”设置为详细;
- 再次尝试运行测试,然后在输出窗口(选择“测试”输出源)查看完整日志,里面会包含测试加载失败的具体原因(比如程序集加载错误、依赖缺失等),根据日志进一步排查。
另外,你的测试代码本身完全符合NUnit规范:
[TestFixture] public partial class ListViewBOTest { [Test] public void TestSearch_DateTime() { Assert.AreEqual(1,0); } }
[TestFixture]和[Test]属性都正确添加,访问修饰符也是public,所以问题应该出在环境配置而非代码本身。
内容的提问来源于stack exchange,提问作者Helen Araya
相关产品推荐
相关产品推荐

