【发布时间】:2018-05-04 21:47:25
【问题描述】:
我想并行运行我的 selenium 测试并在我的 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配置了一个视图,test2中不应该看到的。
我的想法是为不同的用户运行这些课程(其中有很多)。当测试开始时,它应该使用一个用户名,当前并行运行的测试不使用该用户名。目前我不知道nunit并行运行了哪些测试,所以无法直接参数化。
我没有找到任何控制并行测试的方法。我可以定义是否并行以及并行执行的数量。我想要的是,提供并行运行测试参数。如果我有 3 个并行运行的测试类,我想给出所有 3 个不同的参数。
有什么想法可以实现吗?
【问题讨论】:
-
我会先阅读 NUnit 文档并尝试一些代码。完成后,如果它不起作用,请发布您尝试的内容和结果(以及任何错误消息)。
-
如果您能提供minimal reproducible example,那就太好了。
-
抱歉,不太容易描述。我希望它现在更容易理解了。
标签: c# selenium-webdriver nunit