You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSTS Hosted Linux Preview中Karma+ChromeHeadless运行Angular6测试报错求助

解决VSTS Hosted Linux Preview上ChromeHeadless依赖缺失的问题

这个问题很典型——Hosted Linux Preview环境默认没有预装ChromeHeadless运行所需的系统级依赖库,哪怕Puppeteer自带了Chrome二进制文件,也得依赖这些系统库才能启动。下面是具体的解决步骤:

1. 在CI构建中添加系统依赖安装步骤

在你的VSTS构建流程里,在执行单元测试命令(比如ng test)之前,添加一个Shell脚本任务,运行以下命令来安装缺失的依赖:

sudo apt-get update
sudo apt-get install -y libxss1 libxtst6 libnss3 libatk-bridge2.0-0 libgtk-3-0 libgbm1 libasound2

这些包是ChromeHeadless在Ubuntu环境下运行的核心依赖,你遇到的libXss.so.1就包含在libxss1包里,安装后就能解决这个缺失问题。

2. 确认Karma配置的正确性

你的karma.conf.js配置已经做了正确的核心设置:

  • 指定了Puppeteer的Chrome路径
  • 使用了ChromeNoSandbox启动器并加上--no-sandbox参数(Linux容器环境必须加这个,否则Chrome会因权限问题启动失败)

如果后续还是有启动异常,可以尝试把--disable-gpu也加入flags里,某些Linux环境可能需要这个参数来规避GPU相关的兼容问题:

customLaunchers: {
  ChromeNoSandbox: {
    base: 'ChromeHeadless',
    flags: ['--no-sandbox', '--headless', '--disable-gpu'],
  },
},

3. 验证构建流程

把安装依赖的步骤加入后,重新运行CI构建,应该就能正常启动ChromeHeadless并执行单元测试了。

内容的提问来源于stack exchange,提问作者Imran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:37:55