Кросс-браузерное тестирование в xUnit с Selenium - PullRequest
0 голосов
/ 30 ноября 2018

Я хотел бы запустить свои юнит-тесты в разных браузерах с Selenium и xUnit.Я не мог найти правильное решение на протяжении всего моего исследования.Я нашел несколько вариантов с nUnit, но они не соответствуют моим потребностям.

В соответствии со всеми тестами необходимо выполнить три тестаразные браузеры (IE, Chrome, Firefox).Также количество браузеров должно быть настраиваемым.

Есть ли какое-то правильное решение?

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

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

switch (Configuration["DriverType"])
            {
                case "firefox":
                    var firefoxService = FirefoxDriverService.CreateDefaultService(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "geckodriver.exe");
                    firefoxService.FirefoxBinaryPath = Configuration["FirefoxPath"];

                    FirefoxOptions firefoxOptions = new FirefoxOptions();

                    firefoxOptions.SetPreference("browser.download.dir", Configuration["DownloadPath"]);
                    firefoxOptions.SetPreference("browser.download.useDownloadDir", true);
                    firefoxOptions.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");

                    Driver = new FirefoxDriver(firefoxService, firefoxOptions);

                    break;

                case "chrome":
                    var chromeOptions = new ChromeOptions();
                    chromeOptions.AddUserProfilePreference("safebrowsing.enabled", true);

                    Driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), chromeOptions);

                    break;
            }

Я использую сценарий PowerShell для запуска .dll и записи типа драйвера в файл appsettings.json через этот сценарий.Пример:

$file = Get-Content "appsettings.json" -raw | ConvertFrom-Json
$file.DriverType = "chrome"
0 голосов
/ 01 июля 2019

Прямо сейчас нет идеального способа сделать это, но вы должны попробовать пакет Watin.core.Он будет поддерживать IE и Firefox, но не Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...