求助:NUnit搭配Live Testing异常,测试被标记为排除状态
解决Live Unit Testing排除NUnit测试的问题
嘿,我来帮你搞定这个困扰!你遇到的NUnit测试被Live Testing排除,但MSTest正常的问题,大概率是测试适配器兼容或者VS配置的问题,下面是一步步的解决办法:
1. 检查并更新NUnit测试适配器
VS的Live Unit Testing需要对应的NUnit测试适配器才能识别NUnit测试,而你用的VS2017 15.6.2和NUnit 3.10.1需要匹配的适配器版本:
- 右键你的测试项目,选择「管理NuGet程序包」
- 在「浏览」标签搜索
NUnit3TestAdapter,安装3.10.0或3.11.0版本(这两个版本和VS2017 15.6.x兼容性更好) - 安装完成后重启Visual Studio,再开启Live Testing试试
2. 确认Live Testing的项目包含设置
有时候VS会默认排除某些测试项目,你需要手动确认:
- 点击VS右上角的「Live Unit Testing」按钮,打开下拉菜单
- 选择「Include/Exclude Projects」,确保你的NUnit测试项目被勾选包含在内
- 另外,检查「Filter Tests」选项,确保没有过滤掉NUnit的测试类别或命名空间
3. 清理混合测试框架的干扰(可选)
你的测试项目里同时存在MSTest和NUnit的代码(两个不同的测试类),虽然理论上没问题,但偶尔会导致VS的测试发现机制混乱:
- 如果不需要MSTest,可以移除
using Microsoft.VisualStudio.TestTools.UnitTesting;引用,以及对应的[TestClass]和[TestMethod]属性 - 只保留NUnit的
[TestFixture]和[Test]标记的代码
4. 清理缓存并重建解决方案
编译缓存有时候会导致测试识别异常,试试这个操作:
- 点击VS菜单的「生成」→「清理解决方案」
- 然后点击「生成」→「重新生成解决方案」
- 再次开启Live Testing,看是否能识别NUnit测试
5. 更新Visual Studio到最新补丁
VS2017 15.6.2可能存在一些测试工具的bug,建议检查更新:
- 打开VS的「工具」→「获取工具和功能」
- 进入Visual Studio Installer,检查是否有针对测试组件的更新,安装后重启VS
你的代码示例
using Microsoft.VisualStudio.TestTools.UnitTesting; using NUnit.Framework; namespace UnitTestProject1 { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { } } [TestFixture] public class NUnitTest1 { [Test] public void NUnitTestMethod1() { } } }
内容的提问来源于stack exchange,提问作者gilliduck
相关产品推荐
相关产品推荐

