私は、MSTestへのコマンドライン呼び出しによって実行されている一連のSelenium WebDriver(Selenium RCではなく、Selenium-Serverを使用していない)テストに取り組んでいます。テストを計画しているブラウザ(現時点ではChrome、Firefox、IE9)ごとにテストクラスに分割しました。各テストクラスには、テスト対象のシステムにログインして、要求されたテストを実行する起動メソッドがあります。 WebDriver.Quit()を使用してブラウザを閉じるTearDownメソッド。
私の開発マシンではすべてが厄介ですが、ビルドマシンでは、クラスの初期化/起動メソッドが正常に実行され、サイトにログインしますが、最初の実際のテストが開始されるとすぐに、テストランナーはエラーメッセージで閉じます。
OpenQA.Selenium.WebDriverException: Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:59982
明らかに、テストされているブラウザに応じてポートが変わります。スイート全体を実行すると、IE、Firefox、Chromeのテストで異なるポートでエラーが発生します-ブラウザごとに2つのエラーが発生します(スイートには現在、ブラウザごとに2つのテストがあるため)
ビルドマシンではWindowsファイアウォールがオフになっており、テストを実行する前にnetstatを確認すると、ポートが使用されていないことがわかります。テストをデバッグし、スタートアップコードの実行後、テストの実行前に停止した場合、もちろんポートは使用中です。127.0.0.1とlocalhostも同じです。
コマンドラインからテストを呼び出すか、VSテストツールを使用してVisual Studio内からテストを実行/デバッグするか、Process.Start()を介してMSTestを呼び出すコンソールアプリを実行するかどうかにかかわらず、同じエラーが発生します。例外は、最初のFindElement()呼び出しでスローされます。
開発ボックスではなくビルドマシンでこれが失敗する理由をどこで調べ始めることができますか?