在Docker容器中运行硒测试
问题描述:
我想从我的javascript项目的源代码构建一个docker镜像。我用摩卡框架写了一些测试。测试应该在构建docker构建过程中运行,因为我想用Jenkins自动化构建。在Docker容器中运行硒测试
测试应该使用Firefox webdriver。我在Docker镜像中安装了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运行Selenium测试的最佳做法?
答
我固定通过运行启动硒独立服务器,并与xvfb的运行测试吞气任务的问题:
CMD xvfb-run ./node_modules/gulp/bin/gulp.js test
您可以添加Dockerfile? –