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

如何在NUnit测试源码中配置让指定类默认不被dotnet test执行

可以实现,最简便的方案是直接在测试类源码中使用NUnit原生的[Explicit]特性,不需要修改任何命令行参数或全局配置。

方案1:使用[Explicit]特性(最贴合需求)

该特性的作用是标记测试/测试类仅在被显式选中时执行,不会被全量测试运行自动捕获,完全匹配你的要求:

  • 直接在IntegrationTests.cs中给测试类添加特性即可,示例代码:
using NUnit.Framework;

[TestFixture]
// 特性参数为可选的说明文本,标注不默认执行的原因
[Explicit("集成测试默认不随全量任务运行,需手动触发")]
public class IntegrationTests
{
    [Test]
    public void 集成测试示例()
    {
        // 测试逻辑
    }
}
  • 实际运行效果:
    • 执行无参数的dotnet test命令时,该类下所有测试会被自动跳过,仅运行UnitTests.cs中的单元测试
    • IDE中点击全局「运行所有测试」按钮时,这些集成测试同样不会执行
    • 在IDE中手动选中该测试类、或类下任意单个测试方法点击运行/调试时,集成测试可以正常执行

方案2:测试分类+本地运行配置(适合多分类灵活管理场景)

如果你后续需要扩展更多测试分类(如数据库测试、性能测试等),需要更灵活的过滤规则,可以用分类标记+本地默认运行配置实现:

  • 第一步:给集成测试类添加分类标记:
[TestFixture]
[Category("Integration")]
public class IntegrationTests
{
    // 测试逻辑
}
  • 第二步:在Tests项目根目录新建.runsettings文件,配置默认过滤规则:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <!-- 默认排除所有Integration分类的测试 -->
    <TestCaseFilter>TestCategory!=Integration</TestCaseFilter>
  </RunConfiguration>
</RunSettings>
  • 第三步:将该配置文件设为项目本地默认加载的测试配置后,执行dotnet test会自动应用过滤规则,不需要额外加命令参数。需要运行集成测试时,手动选中对应测试执行即可。

如果仅需要实现当前需求,优先选择方案1,仅需修改IntegrationTests.cs的源码,不需要额外新增配置文件,改动成本最低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:12:30