如何使用 Selenium/NUnit 并行运行多个测试装置?

问题描述 投票:0回答:1

我有一点问题。我正在开发一个自动化项目,并尝试在多个浏览器上并行执行测试。
我有这两门课:

[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/");
    }
}

我知道我应该在某个地方添加 [Parallelizable]...但不知道在哪里。我尝试将其放置在 BaseTest 类上方和 NavigateToGoogle 方法上方,但无论哪种方式都不起作用。有人有什么想法吗?或者也许我创建这些类的方式做错了什么?
谢谢!

c# selenium-webdriver automation nunit
1个回答
0
投票

默认情况下,[Parallelizable] 使用 ParallelScope.Self 作为作用域。这意味着该测试将能够与“其他”测试并行运行。由于只有 1 个测试,因此它将同步执行。 尝试将范围更改为“Fixtures”:

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

您可以在此处查看不同的范围及其含义:
https://docs.nunit.org/articles/nunit/writing-tests/attributes/parallelizing.html

© www.soinside.com 2019 - 2024. All rights reserved.