VSTS使用Karma和ChromeHeadless托管Linux预览版

时间:2018-05-19 08:35:29

标签: angular azure-devops karma-runner puppeteer google-chrome-headless

我的堆栈如下:Angular 6,Karma,Puppeteer与ChromeHeadless。我正在尝试在VSTS Hosted Linux Preview上设置CI构建。但是,当我在构建机器上运行单元测试时,我收到以下错误。

  

无法启动ChromeHeadless /opt/vsts/work/1/s/node_modules/puppeteer/.local-chromium/linux-555668/chrome-linux/chrome:加载共享库时出错:libXss.so.1:无法打开共享对象文件:没有这样的文件或目录

如果我切换到Hosted VS2017版本,那么它可以正常工作。这可能是因为它预装了Chrome。我已经尝试将Chrome安装到Linux构建机器上,但仍然没有运气。不幸的是,对于这个特定的构建我需要使用Linux盒子,所以我不能切换到Windows Hosted VS2017盒子。

我的karma.conf.js文件如下所示:

// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html
process.env.CHROME_BIN = require('puppeteer').executablePath();
module.exports = function (config) {
config.set({
browsers: ['ChromeNoSandbox'],
customLaunchers: {
  ChromeNoSandbox: {
    base: 'ChromeHeadless',
    flags: ['--no-sandbox', '--headless'],
    },
  },
  singleRun: true,
 });
};

谢谢,

1 个答案:

答案 0 :(得分:1)

添加Shell脚本任务:

脚本:

sudo apt-get update
sudo apt-get -qq -y install libpangocairo-1.0-0 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libgconf2-4 libasound2 libatk1.0-0 libgtk-3-0