为何Visual Studio 2022中.Net Standard项目的.Net Framework测试无法运行但Core测试正常?
检查NUnit及测试适配器版本兼容性
确保NUnit框架版本和NUnit3TestAdapter版本匹配,针对.Net Framework的测试项目,NUnit 3.x必须搭配对应版本的NUnit3TestAdapter,旧版适配器可能无法识别测试类。在NuGet包管理器中查看并更新到兼容版本,同时确认测试项目目标框架(如.NET Framework 4.7.2及以上)与适配器版本适配。验证测试类和方法的特性标记
检查测试类是否标记了[TestFixture]特性,测试方法是否标记了[Test]特性,避免特性误删或引用了其他测试框架的同名特性。示例代码:using NUnit.Framework; [TestFixture] public class MyTests { [Test] public void TestMethod() { // 测试逻辑 } }检查测试项目的输出路径和文件完整性
编译完成后查看测试项目输出目录(如bin/Debug/net472),确认生成了测试程序集,且程序集包含测试类元数据。可通过ILSpy工具打开程序集,检查是否存在带TestFixture和Test特性的类型,排除程序集生成异常问题。重置测试运行器配置
在Visual Studio中执行清理解决方案(Build -> Clean Solution),删除项目的bin和obj目录后重新编译。同时在Test Explorer中点击“Settings”图标,选择“Configure Run Settings -> Reset to Default”,避免自定义配置导致测试识别失败。确认测试项目的目标框架设置
确保测试项目的目标框架为正确的.Net Framework版本,且与被测试的.Net Standard项目兼容(如.Net Standard 2.0兼容.Net Framework 4.6.1及以上)。若测试项目目标框架版本过低,会导致无法正确加载被测试项目,进而无法识别测试。
内容的提问来源于stack exchange,提问作者Mike

