You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6项目中NUnit3TestAdapter默认执行Explicit测试的异常问题

问题

我有一个基于.NET 6的NUnit单元测试项目,其中包含如下标记了[Test]和[Explicit]特性的测试方法:

public class Class1
{
    [Test]
    [Explicit]
    public void Hello()
    {
        Assert.That(1 == 1, Is.True);
    }
}

在Visual Studio 2022测试资源管理器中点击「全部运行」时,该项目会尝试执行这个标记了[Explicit]的测试,但同一解决方案内其他项目的[Explicit]特性正常生效(不会被自动执行)。

我怀疑项目里存在控制测试发现/执行的特殊设置,但未找到相关配置。项目的NuGet包引用如下:

<ItemGroup>
  <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
  <PackageReference Include="NSubstitute" Version="5.3.0" />
  <PackageReference Include="NUnit" Version="4.2.2" />
  <PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
</ItemGroup>

已尝试清理解决方案、重启Visual Studio和机器,问题仍未解决。

可能的解决思路

  • 检查.runsettings配置文件:如果项目或解决方案下有.runsettings文件,查看是否存在<RunExplicitTests>True</RunExplicitTests>配置项,若有则改为False,该配置会强制NUnit测试适配器运行所有显式测试。
  • 调整NuGet包版本:尝试降级NUnit3TestAdapter或NUnit版本,比如将NUnit3TestAdapter降至4.5.0,或NUnit降至4.1.0,排查是否是版本兼容性导致的异常。
  • 检查项目调试参数:右键测试项目→属性→调试,确认是否添加了NUnit的--run-explicit命令行参数,该参数会强制执行所有显式测试。
  • 重置测试资源管理器状态:在Visual Studio中执行「测试→测试设置→重置测试运行配置」,同时手动清除测试缓存目录(路径为%TEMP%\VisualStudioTestExplorerExtensions),然后重新生成解决方案。
  • 检查测试过滤器:在测试资源管理器的筛选器中,确认是否启用了「包括显式测试」选项,若启用则取消勾选。

内容的提问来源于stack exchange,提问作者imran chowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:40:00