NUnit3TestExecutor 使用当前发现模式、显式运行发现了 1 个 NUnit 测试用例中的 0 个

sas*_*alm 5 c# nunit specflow visual-studio-2019

当我从测试资源管理器运行 SpecFlow+NUnit 测试时,即使我只选择了部分测试,所有测试也会始终运行。

我还看到了这条消息,我怀疑它是相关的:

NUnit3TestExecutor discovered 0 of 1 NUnit test cases using Current Discovery mode, Explicit run
Run Code Online (Sandbox Code Playgroud)

此外,测试运行后,即使成功,它们仍被标记为“未运行”。

我该如何解决这个问题?

sas*_*alm 8

我按照https://github.com/nunit/nunit-vs-adapter/issues/125中的建议将解决方案中的所有 nuget 包升级到最新版本来修复此问题。我不知道为什么会解决这个问题,但它确实解决了。

升级 nuget 包后出现错误:

System.IO.FileLoadException : Could not load file or assembly 'nunit.framework, Version=3.13.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)

此问题已通过以下建议修复: https://github.com/SpecFlowOSS/SpecFlow/issues/2387

  • 同样,在 VS 2022 17.4 上,这个 net452 项目也不会运行测试。安装“NUnit3TestAdapter”,然后将“NUnit”从 3.7.0 升级到 3.13.3,使测试能够在 VS 测试资源管理器中运行。此升级还修改了“.csproj”以导入一些与 nunit 相关的“.props”。 (2认同)