How to run each test on different browsers parallely

60 Views Asked by At

I have following folder structure for selenium with c# and NUnit as testing lib. and after that I will ask question

TestProject
     -BaseClassFolder
       - Baseclass
     - TestsFolder
       -TestClass1

I have defined [SetUp], [OneTimeSetUp], [TearDown], [OneTimeTearDown] in BaseClass and inhertied it in TestClass1. Following is my [SetUp] method.

    public void InitializeOnce()
    {
        Driver = Launch(browser);
        loginPage = new LoginPage(Driver);
        var size = Driver.Manage().Window.Size.ToString();
        NavigateToLoginPage(browser, siteUrl);
        LoginPage.Login(nameofuser, passwordofuser);
    }

I am inheriting baseclass in testclass1. I want to achieve somethimg like this

[Test]
[BrowserType("Chrome")]
[BrowserType("Edge")]
public void Test1()
{
// testing logic here
}
[Test]
[BrowserType("Firefox")]
[BrowserType("Opera")]
public void Test2()
{
// testing logic here
}

Test1 should run for Chrome and Edge browser parallelly and similarly Test2 should run for Firefox and Opera parallelly. My Test should run on browsers only which I define

And in AsseblyInfo i have defined

[assembly: LevelOfParallelism(10)]
[assembly: Parallelizable(ParallelScope.Fixtures)]

How can I achieve this can someone please help?

I have tried following but i am not getting the result I want

    [TestFixture("CHROME")]
    [TestFixture("EDGE")]
    [TestFixture("FIREFOX")]
    [TestFixture("CHROMEHEADLESS")]
    [TestFixture("EDGEHEADLESS")]
public abstract class Base : TestBase
{
  private string browser;

  public Base(string browser)
  {
    this.browser = browser;
  }

  private IWebDriver Driver { get; set; }

[SetUp]
public void InitializeOnce()
{
   Driver = Launch(browser);
   loginPage = new LoginPage(Driver);
   var size = Driver.Manage().Window.Size.ToString();
   NavigateToLoginPage(browser, siteUrl);
   LoginPage.Login(nameofuser, passwordofuser);
}
[TearDown]
public void Quit()
{
Driver.Quit();
}
}

By using above code what i am getting is that all tests that inherit BaseClass runs for all defined browsers. But I want to achieve is like certain tests should run for the browser and some tests should run for other browsers that I define

0

There are 0 best solutions below