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

如何在Unity的NUnit测试中实现自定义测试分组(非TestCase/子类方式)

实现自定义测试分组(NUnit)

你可以通过自定义特性封装NUnit原生的Category功能,来实现你想要的[TestGroup]分组方式,同时保留同一个TestFixture下的SetUp共享逻辑:

1. 创建自定义TestGroup特性

继承NUnit的CategoryAttribute,这样NUnit会自动识别为测试分类:

using NUnit.Framework;

public class TestGroupAttribute : CategoryAttribute
{
    public TestGroupAttribute(string groupName) : base(groupName)
    {
    }
}

2. 在测试中使用TestGroup分组

直接在测试方法上标记[TestGroup],指定分组名称,所有标记同一组名的测试会被归为一组:

[TestFixture]
public class RoomTests
{
    [SetUp]
    public void SetUp()
    {
        // 你的初始化逻辑,所有测试共享此方法
    }

    [Test]
    [TestGroup("OnJoinRoom")]
    public void ShouldDoSomething()
    {
        // 测试逻辑
    }

    [Test]
    [TestGroup("OnJoinRoom")]
    public void ShouldDoSomethingElse()
    {
        // 测试逻辑
    }

    [Test]
    [TestGroup("OnLeaveRoom")]
    public void ShouldCleanupResources()
    {
        // 其他分组的测试
    }
}

效果说明

在NUnit测试运行器(比如Visual Studio测试资源管理器、JetBrains Rider测试窗口)中,你可以按Category(也就是自定义的TestGroup名称)筛选或查看分组后的测试,完全符合你想要的分组效果,同时所有测试都在同一个TestFixture下,保留了对SetUp方法的依赖。

如果需要更复杂的分组逻辑(比如动态分组、分组级别的初始化/清理),可以扩展NUnit的ITestAction接口,但上述方案是最轻量化且符合你需求的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:40:27