2012-04-07 22 views
1

バックグラウンド/セットアップ:
JUnitにはたくさんのテストクラスがあります。 MavenとEclipseの両方で設定されています。各テストクラスは、RemoteWebDriverインスタンスをインスタンス化し、テストクラスの実行が終了した後にtearDownメソッドでインスタンスを終了します。Java/Selenium RemoteWebDriver/Maven/JUnit - ブラウザを呼び出す際にヌルセッションIDを取得する

i「はクリーンインストールMVN」を行うことによって、すべてのテストを実行しようとすると、テストのいくつかはうまく実行が、それらの残りの部分があるため、次の例外(スタックトレース)の失敗:

Tests in error: 
    com.tagged.qa.selenium.tests.gifts.GiftsPageTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.tags.TagsPageTest: Error communicating with the remote browser. It may have died.(..) 
    addFriendsTest(com.tagged.qa.selenium.tests.friends.FriendsTest): Error communicating with the remote browser. It may have died.(..) 
    deleteFriendsTest(com.tagged.qa.selenium.tests.friends.FriendsTest): Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.statusupdates.StatusUpdatesTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.comments.CommentsTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.search.SearchPageTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.homepage.HomePageTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.wink.WinkPageTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.profile.ProfilePageTest: Error communicating with the remote browser. It may have died.(..) 
    com.tagged.qa.selenium.tests.footerpagestests.TermsOfServiceTest: Error communicating with the remote browser. It may have died.(..) 

Tests run: 18, Failures: 0, Errors: 11, Skipped: 0 

ターゲットでログを確認する/確実な-レポート/失敗した個々のテストのためにこれに私をリード:テスト実行が起こっていたものの

org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. 
Caused by: org.openqa.selenium.WebDriverException: Session ID may not be null. 

、私はブラウザ(私の場合はFirefoxが)にしようとしていたことに気づきました開いているが、1秒で終了する。 SeleniumサーバーはセッションIDがないことを記録します。それは数回試してみることをやめます。その後、同じ理由により、パイプライン内の他のすべてのテストが失敗します。

これらのテストを個別に実行しようとすると、この問題は発生しませんが、すべてをmavenを使って一緒に実行しようとすると、これは一貫して発生します。助けてください?

答えて

0

これは助けになるのかどうか分かりませんが、私は3.18を使用したメモリから3.xを超えるfirefoxの任意のバージョンでmaven経由でセレンを使用することができませんでした。私は後のバージョンを使用するときにあなたの症状を持っています。

私はすべてを試しましたが、敗北を認め、単に古いバージョンでインストールしていました。

少なくとも私たちのセレンテストはうまくいっており、実際の作業を進めています。

+0

興味深い。私はFirefox 11で問題なく動作させることができます。私はちょうどEclipseで同じようにテストが失敗したと考えていましたが、失敗してしまいました。だから実際に期待どおりにmavenと関係がありません。 –

+0

私の悪い。私はちょうど私のコードでブラウザを正しく呼び出さなかった。ちょうどjavaのキーワード "静的"の巨大な教訓を学びました。私のコードは、FF 11.0のselenium-server-2.20とmaven 2.2.1で動作するようになりました。しかし、応答に感謝します。あなたがボヘミアンを働かせるのに役立つ必要があるかどうか教えてください。 –

0

は私はわからないが、通常、私は物事は私がテストのグループを実行すると失敗する、と私は単一のテストを実行したときに渡して見ると、犯人は通常どちらかである:

1)スレッドの問題。これらのテストはマルチスレッドですか?もしそうなら、多分何らかの種類のリソース競合があります。

2)引き裂かれた問題。 tearDownに何か起こっていることがあります。これは新しいブラウザがきれいに起動できないようにブラウザを悪い状態にしていますか?

申し訳ありませんもっと助けになることはできませんでしたが、私はMavenとEclipseを使ってSeleniumテストを駆動していません。

0

私のこのコードで同じ問題がありました。

 WebDriver augmentedDriver; 
     if(BrowserConfig.getHubURL().equalsIgnoreCase("none")) 
      augmentedDriver = getDriver(); 
     else augmentedDriver = new Augmenter().augment(getDriver()); 

     LOGGER.info("Just before capture: "); 
     LOGGER.info(augmentedDriver.toString()); 
     byte[] screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.BYTES); 

getscreenshotコールの前にdriver.quit()がo flowで呼び出されていることが分かりました。このb

関連する問題