Selenium ドライバーを使用して WebinatorSpecFlow+NUnit で ASP.NET MVC 3 アプリを開発しています。Chrome (chromedriver を使用) と Internet Explorer で並列テストを実行すると問題が発生します。
両方のテストを同じセッションで実行し、Webinator を介して Selenium で並行して実行すると、ページにクリック アクションを送信すると IE がハングするように見えます。
SpecFlow は基になる C# コードを自動的に生成するため、ここで提案されているソリューションを使用できません。私のソリューションは次のように設計されています(完全なコードは Gist として入手できます)。
_multipleBrowsers.RunTest(web => web.GoToUrl("http://localhost/PROJECT/Authentication/Registration"));
何が起こるかというと、テストする必要があるすべてのブラウザーに対して新しい IWebManager をインスタンス化するということです。次に、ブラウザー インスタンスを使用してデリゲート アクションを呼び出します。こんなふうになります:
foreach (var web in _webManagers)
{
Debug.WriteLine("Running test with " + web.Config.Browser);
action(web);
}
このようにして、テストはほぼ並行して実行されます。ブラウザをポップアップ表示し、アクションを実行してから、別のブラウザを実行します。
この ChromeDriver の問題を解決する方法について何か考えはありますか? 複数のブラウザーで SpecFlow を使用してテスト アプローチを変更する必要がありますか?
参考文献: