为了账号安全,请及时绑定邮箱和手机立即绑定

与参数并行运行nunit测试(nunit 3.8.x)

与参数并行运行nunit测试(nunit 3.8.x)

C#
阿波罗的战车 2021-05-05 13:18:53
我想并行运行硒测试,并在assembly.cs中设置以下内容。[assembly: Parallelizable(ParallelScope.Fixtures)]好的。这样可行。这是代码结构的简短示例using NUnit.Framework;namespace MyExample{    [TestFixture]    [Category("TestsRunningWithLogin1")]    public class Test_Example1    {        [Test, Order(1)]        public void Test1()        {        }        [Test, Order(2)]        public void Test2()        {        }    }    [TestFixture]    [Category("TestsRunningWithLogin2")]    public class Test_Example2    {        [Test, Order(1)]        public void Test1()        {        }        [Test, Order(2)]        public void Test2()        {        }    }}测试需要用户名和密码,然后才能在网页中进行操作。当前在OneTimeSetUp方法中处理登录等。该网页将最后使用的视图保存在用户设置中。如果我按顺序运行测试,那么我不会有问题,因为测试不会相互影响。所有测试都可以使用相同的用户名运行。如果并行运行,它们可能会相互影响。比如test1配置了一个view,test2中不应该看到的。我的想法是与不同的用户一起运行类(其中有很多)。测试开始时,它应该使用用户名,并行运行测试当前未使用该用户名。目前,我不知道nunit正在并行运行哪些测试,因此无法直接对其进行参数化。我没有找到如何控制并行测试的任何东西。我可以定义是否并行以及有多少并行执行。我想要的是给并行运行测试参数。如果我有3个并行运行的测试类,则要提供所有3个不同的参数。有什么想法要实现吗?
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

一个没有 nunit 的可能答案是提供参数的小服务。因此,每个并行测试都应调用一个Web服务,并将获得其唯一参数。该网络服务将在每次调用时返回下一个参数集。

如果我要提供10个不同的参数集并并行运行3个测试,则可以肯定的是,这3个并行测试永远不会获得相同的参数。假设所有测试用例几乎都需要相同的时间。

我会称其为hack,因此我正在寻求一个nunit解决方案。


查看完整回答
反对 回复 2021-05-29
  • 3 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信