如何在VSTS中仅运行基于NUnit3+C#的Selenium自动化Sanity测试用例
嗨,我来帮你搞定这个需求!结合NUnit3的特性和VSTS(现在也叫Azure DevOps Pipeline)的配置,有几种简单高效的方法可以只运行你的Sanity测试用例,不用每次跑全部:
方法1:用NUnit的Category/Trait标记测试,在VSTS中过滤
这是最常用也最灵活的方式,步骤如下:
第一步:给Sanity测试加标记
在你的C#测试代码里,给需要归类为Sanity的测试用例加上[Category]属性(或者更灵活的[Trait]属性):// 使用Category属性 [Test] [Category("Sanity")] public void LoginSanityTest() { // Selenium测试逻辑 } // 或者用Trait属性(更适合自定义键值对) [Test] [Trait("TestSuite", "Sanity")] public void CheckoutSanityTest() { // Selenium测试逻辑 }第二步:在VSTS Pipeline中配置过滤
打开你的VSTS测试任务(通常是「Visual Studio Test」任务),找到测试过滤器输入框:- 如果用的是
[Category],就填:TestCategory=Sanity - 如果用的是
[Trait],就填:Trait="TestSuite","Sanity"
这样任务就只会运行标记了对应Category/Trait的测试用例。
如果你是用NUnit3控制台命令行来运行测试,也可以直接加过滤参数:
nunit3-console.exe YourTestAssembly.dll --where "cat == Sanity" # 或者对应Trait的写法 nunit3-console.exe YourTestAssembly.dll --where "TestSuite == Sanity"把这个命令放到VSTS的「命令行」任务里执行就行。
- 如果用的是
方法2:通过测试名称前缀/关键词过滤
如果你的Sanity测试用例名称都有统一的命名规则(比如都以Sanity_开头,或者名称里包含Sanity),可以直接用名称过滤:
在VSTS测试任务的测试过滤器里填:Name~Sanity
这个语法会匹配所有名称中包含Sanity的测试用例,不用修改代码,适合临时快速筛选。
方法3:拆分Sanity测试到独立项目(可选)
如果你的Sanity测试数量较多,且和其他测试的边界很清晰,可以直接把这些测试单独放到一个新的测试项目里(比如YourProject.SanityTests)。然后在VSTS Pipeline中,只指定运行这个项目的测试文件,完全隔离其他测试用例,这种方式管理起来更清晰,适合长期维护的大型测试套件。
内容的提问来源于stack exchange,提问作者user7520525
相关产品推荐
相关产品推荐

