Распечатать имя браузера в nunit testresult xml - PullRequest
1 голос
/ 03 мая 2019

Я запускаю тесты селена с несколькими браузерами параллельно, используя сетку селена.Вот как я определяю тесты с помощью тестового приспособления

public class ChromeDriver : RemoteWebDriver
{
    public ChromeDriver() : base(new Uri("http://12.8.4.211:4444/wd/hub"), new ChromeOptions())
    {
    }
}

public class FirefoxDriver : RemoteWebDriver
{
    public FirefoxDriver() : base(new Uri("http://12.8.4.211:4444/wd/hub"), new FirefoxOptions())
    {
    }
}


[TestFixture]
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(FirefoxDriver))]
[Parallelizable(ParallelScope.Fixtures)]
public class MyTests<TWebDriver> : SeleniumTestFixture<TWebDriver> where TWebDriver : IWebDriver, new(){
     //Here goes my tests
}

Но когда я вижу результат xml, созданный nunit, я не вижу имя браузера в xml.Как я могу получить название браузера в XML.Также я сохраняю скриншот и сохраняю результаты на жестком диске в зависимости от имени теста, как показано ниже

var screenshot = ((ITakesScreenshot)WebDriver).GetScreenshot();
screenshot.SaveAsFile(Path.Combine(dir, $"{TestContext.CurrentContext.Test.MethodName}.png"), ScreenshotImageFormat.Png);

Так что при запуске теста будет сохранен скриншот на основе имени теста.Но проблема в том, что когда я запускаю тест с несколькими браузерами, снимок экрана будет переопределен, так как он будет иметь одно и то же имя независимо от браузера.Он должен храниться на основе имени браузера, так что мне нужно как-то получить имя браузера и добавить к имени скриншота.

кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 05 мая 2019

Сохраните ваши файлы под именем теста NUnit, а не именем метода.Это будет включать имя драйвера браузера, переданное в ваших атрибутах TestFixture.

Вы можете получить к нему доступ в:

TestContext.CurrentContext.Test.Name
0 голосов
/ 03 мая 2019

вы сможете получить имя браузера, используя нужные возможности.

IWebDriver.DesiredCapabilities("BrowserName")

Вот ссылка для получения дополнительной информации. https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Remote_DesiredCapabilities.htm

0 голосов
/ 03 мая 2019

Здесь есть способ вместо использования testname в качестве имени скриншота, вы можете обработать его, объединив Browsername (используйте статическую переменную) и testname.

Например, имя теста: ABC и имя браузера: GoogleChrome для выполнения теста в Google Chrome, так что теперь имя скриншота можно сохранить как GoogleChrome_ABC и параллельно, когда оно выполняется в Mozilla Firefox. Имя браузера: Firefox и скриншот будут сохранены как Firefox_ABC.

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