首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在执行开始之前,可以在运行时重新排序NUnit测试吗?

在执行开始之前,可以在运行时重新排序NUnit测试吗?
EN

Stack Overflow用户
提问于 2019-01-30 20:00:39
回答 1查看 34关注 0票数 0

我们有相当多的测试,需要绕过负载均衡器,以便直接与特定的web服务器对话。

每个测试都使用TestCaseSource属性来修饰,该属性指定在运行时确定要访问的web服务器列表的函数。

因此,如果有n个测试T1、T2、.、Tn和m服务器W1、W2、.、Wm (在运行时发现),则测试按以下顺序运行:

代码语言:javascript
运行
复制
T1W1
T1W2
...
T1Wm
T2W1
T2W2
...
T2Wm
...
TnW1
TnW2
...
TnWm

现在,我需要它们以不同的顺序运行,即:

代码语言:javascript
运行
复制
T1W1
T2W1
...
TnW1
T1W2
T2W2
...
TnW2
...
T1Wm
T2Wm
...
TnWm

我知道我可以使用TestCaseData.TestName属性修改测试名。但是这样做仍然可以一起运行子测试用例。例如,见下文:

nan4dfc1app01_RegisterAndStartShiftAndEnsureInvalidBadgenan4dfc1app02_RegisterAndStartShiftAndEnsureInvalidBadge测试一个接一个地运行,而不是:

  • nan4dfc1app01_RegisterAndStartShiftAndEnsureInvalidBadge与所有以nan4dfc1app01_开头的其他测试一起运行
  • nan4dfc1app02_RegisterAndStartShiftAndEnsureInvalidBadge与所有以nan4dfc1app02_开头的其他测试一起运行

因此,从本质上说,重命名测试用例并不会分割子测试用例。对我不好。

那么,有没有办法在运行时按照我需要的方式改变订单呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 06:46:14

使用TestCaseSourceAttribute是不可能做到这一点的。为单个测试方法生成的所有测试用例都一起运行。

另一种分组测试的机制是通过夹具。如果您将类设置为参数化的夹具,并使用TestFixtureSourceAttribute将其传递给web服务器,那么您就可以控制每个夹具中测试的顺序。

您将将传递给夹具的参数保存为实例成员,并在每个测试中使用它。这可能比您正在做的事情更简单、更容易阅读,因为只有一个引用,而不是很多引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54448634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档