【问题标题】:Nunit Selenium Parallel Tests with Values带有值的 Nunit Selenium 并行测试
【发布时间】:2018-07-18 21:40:42
【问题描述】:

我正在尝试以不同的值并行运行相同的 nunit 测试方法。但是第二个测试似乎失败了(我认为它正在尝试使用浏览器的第一个实例;

这是测试;

 namespace AutomationProject.Login_Test_Cases
{
    [TestFixture]
    [Parallelizable(ParallelScope.Children)]
    class Login_Test_Cases: BaseTest
    {

        [Test]

        public void LoginPar([Values("skynet" ,"skynet2")] string username)
        {

            lg.Log_In(username, "password");
            }
        }
}

这是设置浏览器的baseTest;

namespace AutomationProject.BaseClasses
{
    public class BaseTest 

    {

        public Log_In_Methods lg;
        public IWebDriver driver;


       [SetUp]
        public void StartBrowser()
        {

            System.Diagnostics.Trace.AutoFlush = true;

            ChromeOptions options = new ChromeOptions();
            options.AddAdditionalCapability("useAutomationExtension", false);
            driver = new ChromeDriver(//path to chrome driver);

            lg = new Log_In_Methods(driver);

            driver.Manage().Window.Maximize();
            driver.Url = "http://login-test.com";


        }

我还添加了 [程序集:Parallelizable(ParallelScope.Children)] [程序集:LevelOfParallelism(2)] 到 AssemblyInfo

第二次测试似乎总是失败(浏览器甚至没有获取到url)

我可以并行运行不同的类和测试,没有任何问题。

有谁知道是否可以使用不同的值并行运行相同的测试方法?

【问题讨论】:

  • 在 Login_Test_Cases 类中调用 StartBrowser() 方法
  • 谢谢,但恐怕没有运气。我尝试删除 [SetUp] 注释并调用 StartBrowser() 但第二次测试仍然失败。

标签: c# selenium-webdriver automated-tests nunit


【解决方案1】:

有谁知道是否可以使用不同的值并行运行相同的测试方法?

这是绝对可能的。这里的问题是两个测试在 BaseTest 类的单个实例上并行运行,因此您只有一个 lg 字段,两个测试都试图同时创建/使用。

能够使用两个单独的 BaseTest 对象运行两个单独的测试是一个开放的功能请求,请参阅此处:https://github.com/nunit/nunit/issues/2574

与此同时,如果您要将 [SetUp] 逻辑包含在您的测试方法中并使用局部变量,那么您尝试做的事情应该会奏效。

【讨论】:

  • 谢谢,在 [Test] 逻辑中添加局部变量(创建驱动程序和页面)有效。抱歉,我也没有足够的代表来对此表示赞同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 2017-05-25
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多