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

如何在NUnit单个项目中分别运行回归与Sanity测试?

在NUnit中实现类似TestNG的分组测试(Regression/Sanity)

嗨,我来帮你搞定这个问题!从TestNG转NUnit的话,其实NUnit的Category属性就对应TestNG的分组功能,完全可以实现你要的单独运行Regression或Sanity测试的需求,下面给你一步步讲怎么操作:

1. 用Category属性标记测试方法/类

你可以给单个测试方法或者整个测试类添加[Category]特性,来标记它们属于哪个测试分组(Regression/Sanity)。比如:

using NUnit.Framework;

// 整个类下的所有测试都默认属于Regression分组
[TestFixture]
[Category("Regression")]
public class OrderManagementTests
{
    [Test]
    public void Submit_ValidOrder_ReturnsSuccess()
    {
        // 你的Selenium测试代码
    }

    // 这个测试同时属于Regression和Sanity分组
    [Test]
    [Category("Sanity")]
    public void Cancel_ExistingOrder_ReturnsSuccess()
    {
        // 你的Selenium测试代码
    }
}

[TestFixture]
public class UserAuthenticationTests
{
    // 这个测试只属于Sanity分组
    [Test]
    [Category("Sanity")]
    public void Login_ValidCredentials_RedirectsToDashboard()
    {
        // 你的Selenium测试代码
    }
}

2. 在Visual Studio 2017中运行指定分组的测试

有两种常用方式:

方式一:用Test Explorer筛选后运行

打开Visual Studio的测试资源管理器(Test Explorer),在顶部的搜索框里输入筛选条件:

  • 要运行所有Regression测试:输入 Category:Regression
  • 要运行所有Sanity测试:输入 Category:Sanity

筛选出来后,右键点击结果,选择运行所选测试就可以了。

方式二:用.runsettings配置文件批量运行

如果你需要固定保存某个分组的运行配置,可以创建一个.runsettings文件:

  1. 右键你的测试项目 -> 添加 -> 新建项 -> 搜索并选择“测试设置文件”(或者直接新建一个XML文件,命名为RegressionTests.runsettings)
  2. 替换内容为:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <NUnit>
    <!-- 指定要运行的分组,这里是Regression -->
    <TestFilter>Category=Regression</TestFilter>
  </NUnit>
</RunSettings>
  1. 同样可以创建SanityTests.runsettings,把TestFilter里的内容改成Category=Sanity
  2. 在VS顶部菜单选择测试 -> 测试设置 -> 选择测试设置文件,选中你要的配置文件,之后运行所有测试时就只会执行对应分组的用例了。

3. 命令行运行指定分组(可选)

如果你需要在CI/CD或者脚本里运行,也可以用命令行:

  • 用dotnet test命令(适用于.NET Core/.NET 5+项目,VS2017如果是.NET Framework的话用vstest.console.exe):
# 运行Regression分组
dotnet test YourTestProject.csproj --filter "Category=Regression"

# 运行Sanity分组
dotnet test YourTestProject.csproj --filter "Category=Sanity"
  • 对于.NET Framework项目,用vstest.console.exe:
vstest.console.exe YourTestProject/bin/Debug/YourTestAssembly.dll /TestCaseFilter:"Category=Sanity"

总结

NUnit的Category特性完全可以替代TestNG的xml分组功能,不管是在IDE里临时筛选,还是用配置文件固定分组,甚至命令行批量运行,都能轻松实现单独Regression或Sanity测试的需求,用起来比TestNG的xml还要灵活一些~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:23:03