Подскажите как в JDI Framework на c# настроить выбор браузера. Для джавы нашел примеры, для C# мало информации. Конечная задача подать из Дженкинса флаг который запустит тесты с определенными настройками.
JDI подключен как пекедж через nuget
Задача не имеет никакого отношения к JDI, все решается на уровне NUnit test runner:
- При запуске тестов из командной строки параметр передается в таком виде:
nunit3-console.exe --params:Browser=Chrome [path_to_your_dll_with_tests]
- Доступ к параметрам из теста (то есть, из тестового контекста) возможен следующим способом:
var myBrowser = TestContext.Parameters.Get("Browser");
Соответственно, значение myBrowser будет равно “Chrome”.
При том в строку выше вы можете модифицировать таким образом, чтобы она возвращала вам и какое-то дефолтное значение по примеру Get(string name, T defaultValue):
var myBrowser = TestContext.Parameters.Get("Browser", "Firefox");
То есть, если параметр не передан вообще, то вы получите Мозиллу на выходе.
- Далее вам следует реализовать либо свою фабрику, которая возвращает вам нужный драйвер в зависимости от переданного значения параметра, либо взгляните на TestCaseSource Attribute. С его помощью вы можете обработать переданный параметр и передать уже нужный объект драйвера в тест.
P.S. Вопрос вдохновил меня на написание отдельной статьи с решением. Теперь только бы время выкроить
Возможно я не совсем корректно сформулировал вопрос, или Вы меня не совсем поняли.
В JDI Framework уже написана своя фабрика, которая возвращает нужный браузер. И в джаве он считывает параметры из файла test.properties в папке с тестами. Я не могу понять куда подложить параметры именно в C#.
За ваш ответ спасибо, думаю многим он будет полезен. Я, как альтернативу вашему подходу использую envinject plugin в jenkins, и читаю параметры из переменных среды
string browser = Environment.GetEnvironmentVariable(“browser”);
Ааа, тогда вам нужен app.config файл, который присутствует в каждом Windows приложении. Вот пример в самом JDI: https://github.com/epam/JDI/blob/master/C%23.Net/app.config
Обратите внимание на следующие строки:
<userSettings>
<Epam.Properties.Settings>
<setting name="driver" serializeAs="String">
<value>chrome</value>
</setting>
<setting name="remote_url" serializeAs="String">
<value>http://10.11.129.28:4444/wd/hub</value>
</setting>
</Epam.Properties.Settings>
<JDI_UI_Framework.Properties.Settings>
<setting name="driver" serializeAs="String">
<value>ie</value>
</setting>
</JDI_UI_Framework.Properties.Settings>
</userSettings>
На данный момент не могу сказать конкретно, как это состыковать с флагом из командной строки, надо покопаться, но это хорошая точка для старта