sch*_*ave 9 node.js npm phantomjs karma-jasmine puppeteer
我们正在测试环境中将PhantomJS从PhantomJS转移到ChromeHeadless,使用Karma和Jasmine作为我们的前端Node.js应用程序.在本地,只需要更换场地
浏览器:['PhantomJS'],
同
浏览器:['ChromeHeadless'],
并在package.json中添加条目:
"karma-chrome-launcher":"xyz",
然后npm构建将采用本地安装的chrome浏览器实例来运行Jasmine测试.这工作正常.
在我们的jenkins构建服务器(在Debian Jessie上运行)上,没有安装chrome,因此无法执行测试.
现在的问题是:
更新:是的,有NPM包木偶操纵者,请参阅:https: //github.com/GoogleChrome/puppeteer.这将根据当前的构建计算机获取chrome版本.因此必须添加一个新条目package.json文件(或通过npm install puppeteer -D安装):
"puppeteer":"xyz",
和karma.conf:
process.env.CHROME_BIN = require('puppeteer').executablePath();
browsers: ['HeadlessChrome'],
customLaunchers: {
HeadlessChrome: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
Run Code Online (Sandbox Code Playgroud)
请注意,使用Debian时,有时必须安装缺少的依赖项.请参阅:https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
有一个比在各处捆绑铬更好的方法来做到这一点。您可以设置环境变量来告诉 Puppeteer 安装或不安装 Chromium。因此,在本地,继续安装 chromium,但在 CI 服务器上将 env 变量设置为不安装 chromium。
然后,您可以获得无浏览器映像并为 CI 服务器 chrome 运行该映像。这样做要好得多,因为您需要在服务器上安装大量依赖项才能让 Chromium 正常工作。使用 Docker 镜像是更好的方法。
请参阅此处的文档: https ://docs.browserless.io/docs/docker-quickstart.html
参考这个问题的答案!有关如何使用 selenium chrome 图像执行此操作的业力配置
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |