私の目標は、1台のマシンで複数のテストを並行して実行することです。そのために、FirefoxとMbunitでSelenium WebDriverを使用しています。残念ながら、Seleniumのドライバ作成はスレッドセーフではないようですが、コードのこの部分をグローバルロックでラップする必要があります。これは世界の終わりではありませんが、私の質問は、これが私がする必要があることか、あるいは同期が必要な他の部分があるかどうかです。もう一つの選択肢は、AppDomainまたはプロセス分離をMBUnitで行うことですが、これが実装されているかどうかはわかりません。1台のマシンでSelenium WebDriverとの同時テストを実行するにはどうすればよいですか?
[TestFixture]
[Parallelizable]
public class Class1
{
public static object padlock = new object();
[Test]
[Parallelizable]
public void Test1()
{
var driver = CreateDriver();
driver.Navigate().GoToUrl("http://www.mozilla.org");
driver.FindElementByCssSelector("a[href='/projects/']").Click();
Thread.Sleep(TimeSpan.FromSeconds(5));
driver.Quit();
}
[Test]
[Parallelizable]
public void Test3()
{
var driver = CreateDriver();
driver.Navigate().GoToUrl("http://www.mozilla.org");
driver.FindElementByCssSelector("a[href='/contribute/']").Click();
Thread.Sleep(TimeSpan.FromSeconds(5));
driver.Quit();
}
**private FirefoxDriver CreateDriver()
{
lock(padlock)
{
return new FirefoxDriver();
}
}**
}
私自身でこれを行うことができましたが、私は自分のCIと簡単に統合できるフレームワークを利用したいと考えています –