Запускать тесты WebDriver NUnit на нескольких драйверах
Недавно мы начали использовать WebDriver (в пользу Selenium 1) для выполнения тестов браузера с использованием инфраструктуры NUnit. Поскольку мы хотим запускать тесты в различных браузерах, мы определяем драйверы для каждого из них и помещаем их в список во время настройки прибора:
[TestFixtureSetUp]
public void SetupTest()
{
// Load drivers
Drivers = new List
{
new ChromeDriver(),
...
};
В каждом тесте мы повторяем список следующим образом:
[Test]
public void SomeTest()
{
foreach (var driver in Drivers)
{
driver.Navigate().GoToUrl("...");
...
Это неправильно делать во всех тестовых методах. Методы тестирования не должны касаться того, с каким драйвером они должны работать. В идеале у нас было бы что-то вроде этого:
public void SomeTest(IWebDriver driver)
{
driver.Navigate().GoToUrl("...");
...
Один из способов решить эту проблему - использовать TestCases:
[TestCase(new ChromeDriver())]
[TestCase(new FireFoxDriver())]
...
Но это много дублирует и переносит проблему правильной инициализации драйверов в атрибуты каждого отдельного теста. Не совсем выигрыш.
Можно ли как-то сказать, что инфраструктура NUnit может выполнять весь набор тестов и вводить разные параметры для отдельных тестов при каждом запуске? Или есть другое хорошее решение для этого?