我们正在测试环境中将PhantomJS转移到ChromeHeadless,并使用Karma& Jasmine为我们的前端Node.js应用程序。在本地,只需要替换字段
浏览器:['PhantomJS'],
与
浏览器:['ChromeHeadless'],
并在 package.json 中添加条目:
“karma-chrome-launcher”:“x.y.z”,
然后npm构建将采用本地安装的chrome浏览器实例来运行Jasmine测试。这可以正常工作。
在我们的jenkins构建服务器(在Debian Jessie上运行)上,没有安装chrome,因此无法执行测试。
现在的问题是:
更新:是的,有NPM包木偶操作员,请参阅: Blocking sockets: when, exactly, does "send()" return?。这将根据当前的构建计算机获取chrome版本。因此,必须添加 package.json 文件的新条目(或通过npm install puppeteer -D安装):
“puppeteer”:“x.y.z”,
和karma.conf:
operator()
请注意,使用Debian时,有时必须安装缺少的依赖项。请参阅:https://github.com/GoogleChrome/puppeteer
答案 0 :(得分:1)
有一种比在您各处捆绑铬更好的方法。 您可以设置环境变量来告诉Puppeteer安装或不安装Chromium。 因此,请在本地安装铬,然后在CI服务器上将env变量设置为不安装铬。
然后,您可以获取无浏览器图像并为CI服务器chrome运行该图像。 更好的原因是由于要使Chromium正常运行,需要在服务器上安装大量依赖项。使用Docker映像是更好的方法。
请参阅此处的文档: https://docs.browserless.io/docs/docker-quickstart.html
请参阅此question中的答案!关于如何使用硒铬图像进行业力配置