我有点小问题.我正在进行一个自动化项目,并try 在多个浏览器上并行执行测试.
我有两节课:

[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(EdgeDriver))]
[TestFixture(typeof(FirefoxDriver))]
public class BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
    protected IWebDriver _driver;

    [SetUp]
    protected void SetUp()
    {
        _driver = new TWebDriver();
    }

    [TearDown]
    protected void TearDown()
    {
        _driver?.Close();
    }
}

public class GoogleTest<TWebDriver> : BaseTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
    [Test]
    public void NavigateToGoogle()
    {
        // Navigate
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl("http://www.google.com/");
    }
}

我知道我应该在某个地方加上[可并行化]...但不知道在哪里.我try 将其放在BaseTest类和NavigateToGoogle方法之上,但这两种方法都不起作用.有谁知道吗?或者,也许我在创建这些类时做错了什么?
谢谢!

推荐答案

默认情况下,[Parallizable]使用ParallScope.Sself作为作用域.这意味着该测试将能够与other个测试并行运行.因为只有一个测试,所以它将同步执行.

try 将作用域更改为Fixtures:

[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(EdgeDriver))]
[TestFixture(typeof(FirefoxDriver))]
[Parallelizable(ParallelScope.Fixtures)]

你可以在这里看到不同的作用域及其含义:https://docs.nunit.org/articles/nunit/writing-tests/attributes/parallelizable.html

Csharp相关问答推荐

使用其可能实现的基类和接口的属性的方法

在. NET Core 8 Web API中,当为服务总线使用通用消费者时,如何防止IServiceProvider被释放或空?"

在. net毛伊岛窗口的深度链接已经创建""

解析需要HttpClient和字符串的服务

Elasticsearch:当我try 使用c#将嵌套对象添加到filter中时出现问题

在多对多关系上不删除实体

TCPClient阅读流

如何捕获对ASP.NET核心应用程序的所有请求并将其发送到一个页面

当索引和外键是不同的数据类型时,如何设置导航属性?

如何将端点(或с匹配请求并判断其路径)添加到BCL?

什么类型的对象存储在大对象堆(LOH)中

在C#中有没有办法减少大型数组中新字符串的分配?

如何在Polly重试策略成功之前将HttpClient请求排队?

在C#中通过Matheval使用自定义公式

获取应用程序版本信息时出现奇怪信息

与另一个对象位于同一位置的对象具有不同的变换位置

使用Try-Catch-Finally为API端点处理代码--有什么缺点?

无法将.Net Framework 4.8.1升级到.Net 7

无法对包含字符串的列进行排序.请与实体框架联接

使用生产环境调试我的应用程序的快速方法