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 ファイルに記載する必要があります。長所: 指定されたすべてのブラウザーが並行して実行されます。2 つのブラウザーに対して 1 つのテストが指定された 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 経由で変更できます。このソリューションを調査しなかったため、例を挙げられません。最初の 2 つのソリューションが役立つことを願っています。