2016-07-11 6 views
1

내 자바 스크립트 프로젝트의 소스에서 도커 이미지를 만들고 싶습니다. Mocha Framework로 몇 가지 테스트를 작성했습니다. 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 셀레늄 테스트를 실행하는 방법에 대한 모범 사례가 있습니까?

CMD xvfb-run ./node_modules/gulp/bin/gulp.js test 
+0

당신이 Dockerfile을 추가 할 수 있습니다 –

답변

0

나는 셀레늄 독립형 서버 및 Xvfb가-실행과 테스트를 시작하는 꿀꺽 작업을 실행하여 문제를 해결?
관련 문제