Uruchom testy WebDriver NUnit na wielu sterownikach

Niedawno zaczęliśmy używać WebDriver (na korzyść Selenium 1) do przeprowadzania testów przeglądarki przy użyciu struktury NUnit. Ponieważ chcemy uruchomić testy w różnych przeglądarkach, definiujemy sterowniki dla każdego z nich i umieszczamy je na liście podczas konfiguracji urządzeń:

[TestFixtureSetUp]
public void SetupTest()
{
    // Load drivers
    Drivers = new List<IWebDriver>
            {
                new ChromeDriver(),
                ...
            };

W każdym pojedynczym teście przeglądamy listę w następujący sposób:

[Test]
public void SomeTest()
{
    foreach (var driver in Drivers)
    {
        driver.Navigate().GoToUrl("...");
...

Źle jest robić to we wszystkich metodach testowych. Metody testowe nie powinny dotyczyć tego, na jakim sterowniku powinny pracować. Idealnie byłoby, gdybyśmy mieli coś takiego:

public void SomeTest(IWebDriver driver)
{
    driver.Navigate().GoToUrl("...");
...

Jednym ze sposobów rozwiązania tego problemu jest użycie TestCases:

[TestCase(new ChromeDriver())]
[TestCase(new FireFoxDriver())]
...

Jest to jednak dużo powielania i przesuwa problem prawidłowej inicjalizacji sterowników w atrybuty każdego pojedynczego testu. Naprawdę nie zysk.

Czy można w jakiś sposób nakazać, aby struktura NUnit wykonała cały zestaw testów i wstrzyknęła inny parametr do poszczególnych testów w każdym cyklu? Czy może jest w tym jakieś inne dobre rozwiązanie?

questionAnswers(3)

yourAnswerToTheQuestion