2016-07-11 12 views
1

私のjavascriptプロジェクトのソースからドッカーイメージを作成したいと思います。私はモカフレームワークでいくつかのテストを書いた。 Jenkinsでビルドを自動化したいので、ビルドドッカーのビルドプロセス中にテストを実行する必要があります。ドッカーコンテナでセレンテストを実行する

テストでは、Firefox webdriverを使用する必要があります。ドッカーのイメージにXvfbをインストールして、Firefoxプロセスの仮想ディスプレイを提供しました。

しかし、毎回、私はすべてのテストが失敗すると、私は次のようなエラーメッセージを取得し、ビルドを実行します。

Uncaught WebDriverError: Unable to parse new session response: {"error":"unknown error","message":"connection refused"} 
    at WebDriverError (node_modules/selenium-webdriver/lib/error.js:27:5) 
    at client_.send.then.response (node_modules/selenium-webdriver/http/index.js:477:17) 
    at ManagedPromise.invokeCallback_ (node_modules/selenium-webdriver/lib/promise.js:1379:14) 
    at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:2913:14) 
    at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:2896:21) 
    at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2820:25) 
    at node_modules/selenium-webdriver/lib/promise.js:639:7 
    at process._tickDomainCallback (internal/process/next_tick.js:129:7) 
From: Task: WebDriver.createSession() 
    at Function.createSession (node_modules/selenium-webdriver/lib/webdriver.js:329:24) 
    at Driver (node_modules/selenium-webdriver/firefox/index.js:386:38) 
    at Builder.build (node_modules/selenium-webdriver/builder.js:467:16) 
    at Object.<anonymous> (test/e2e/driver.js:10:69) 
... 

私は私のローカルマシンのすべてが正常に動作上のドッキングウィンドウコンテナの外部でテストを実行する場合。

私は次のコマンドでwebdriverを初期化:

var webdriver = require('selenium-webdriver'); 

var capabilities = webdriver.Capabilities.firefox(); 
capabilities.set('marionette', true); 
var driver = new webdriver.Builder().withCapabilities(capabilities).build(); 

は、ドッキングウィンドウコンテナの内部でheadlesslyセレンテストを実行する方法上の任意のベストプラクティスはありますか?

+0

あなたはDockerfileを追加することができますか? –

答えて

0

私はセレンスタンドアロンサーバを起動し、XVFB・ランを用いた試験一気のタスクを実行して問題を修正しました:

CMD xvfb-run ./node_modules/gulp/bin/gulp.js test 
関連する問題