Если вы используете NUnit, вы можете указать параметризованные TextFixtures со всеми браузерами, которые вы хотите в базовом тестовом классе:
namespace Tests
{
[TestFixture("*firefox")]
[TestFixture("*iexplore")]
public abstract class Test
{
private static string _browser;
protected Test()
{
}
protected Test(string browser)
{
SetBrowser(browser);
}
public static void SetBrowser(string browser)
{
_browser = browser;
}
[SetUp]
public virtual void Setup()
{
Selenium = new DefaultSelenium(localhost, 5555, _browser, "http://www.google.com/");
Selenium.Start();
}
[TearDown]
public virtual void TearDown()
{
Selenium.Stop();
}
}
}
А сами тесты будут примерно такими:
namespace Tests
{
[TestFixture]
public class Test1 : Test
{
public Test1(string browser)
{
SetBrowser(browser);
}
[Test]
public void FirstTest()
{
...
}
}
}
2) Вы можете указать браузер через PNunit . Минусы: каждый тест должен быть упомянут в файле test.conf. Плюсы: все указанные браузеры будут работать параллельно. Пример файла test.conf с одним тестом, указанным для двух браузеров:
<TestGroup>
<ParallelTests>
<ParallelTest>
<Name>Tests</Name>
<Tests>
<TestConf>
<Name>Test1FF</Name>
<Assembly>Test.dll</Assembly>
<TestToRun>Test.Tests.Test1</TestToRun>
<Machine>localhost:8080</Machine>
<TestParams>
<string>*firefox</string>
</TestParams>
</TestConf>
<TestConf>
<Name>Test1IE</Name>
<Assembly>Test.dll</Assembly>
<TestToRun>Test.Tests.Test1</TestToRun>
<Machine>localhost:8080</Machine>
<TestParams>
<string>*iexplore</string>
</TestParams>
</TestConf>
</Tests>
</ParallelTest>
</ParallelTests>
</TestGroup>
А базовый тестовый класс будет примерно таким:
using NUnit.Framework;
using PNUnit.Framework;
namespace Tests
{
[TestFixture]
public class Test
{
private string browser;
protected Test()
{
}
[SetUp]
public virtual void Setup()
{
browser = PNUnitServices.Get().GetTestParams();
Selenium = new DefaultSelenium(localhost, 5555, browser, "http://www.google.com/");
Selenium.Start();
}
[TearDown]
public virtual void TearDown()
{
Selenium.Stop();
}
}
}
3) Вы можете указать браузеры в app.config и изменить их через TeamCity. Не исследовал это решение, поэтому не могу привести пример.
Надежды первых двух решений помогут.