Как запустить Selenium параллельно с использованием xunit в сетевом ядре? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть разные тестовые классы, которые оба вызывают мой базовый класс, который инициализирует, а затем удаляет браузер Chrome.

Когда я запускаю их по отдельности, никаких проблем.Тем не менее, когда я запускаю их одновременно.У меня есть два браузера, которые открываются почти сразу, и фокусируется на том, какие тесты используют, какой браузер перепутан.Поэтому я никогда не знаю, какие тесты пройдут / не пройдут ... но один класс гарантированно провалится!

Я знаю, что это будет только хуже, когда я добавлю больше классов, поэтому я пытаюсь выяснить это сейчас,

public class BaseTest : IDisposable
    {
        public BaseTest()
        {
            Browser.Initialize();
        }

        public void Dispose()
        {
            Browser.Close();
        }
    }
public static class Browser
    {
        private static IWebDriver _driver;

        public static ISearchContext Driver => _driver;

        public static void Initialize()
        {
            _driver = new ChromeDriver(PathToChromeDriverHere);
            _driver.Navigate().GoToUrl("https://websitehere.com");
        }

        public static void Close()
        {
            _driver.Quit();
        }
    }

public class LoginTests : IClassFixture<BaseTest>
    {
        [Fact(DisplayName = "A user logs in")]
        public void CanLogin()
        {
            Stuff is clicked
            Assert happens here
        }
    }

public class DoStuffOnSiteTests : IClassFixture<BaseTest>
    {
        [Fact(DisplayName = "A user does stuff on screen")]
        public void CanDoThings()
        {
            Stuff is clicked
            Assert happens here
        }
    }

...