我一直试图在基于jasmine
构建的Docker容器中针对以Angular 7
编写的UI代码运行node:10-alpine
测试。我尝试运行铬和木偶安装程序,但铬无头铬似乎没有被捕获。我收到以下错误消息:
警告[发射器]:ChromeHeadless在210000毫秒内未捕获,导致死亡。
WARN [启动器]:ChromeHeadless在2000毫秒内未被杀死,发送了SIGKILL。警告[启动器]:ChromeHeadless并未在2000毫秒内被SIGKILL杀死,>继续。npm ERR!代码ELIFECYCLEnpm ERR! errno 1
我也在下面尝试过:
customLaunchers:
{
ChromeHeadlessNoSandbox:{
base: "ChromeHeadless",
flags: [
"--no-sandbox",
"--no-proxy-server",
"--disable-web-security",
"--disable-gpu",
"--disable-dev-shm-usage",
'--no-proxy-server',
'--proxy-bypass-list=*',
'--window-size=1920,1080',
'--remote-debugging-port=9222'
]
}
}
我也添加了
process.env.CHROME_BIN = require('puppeteer')。executablePath();
在业力配置中
但是一点运气都没有。谁能为我提供最佳解决方案?预先感谢?
经过近一个星期的努力,我以某种方式找到了解决方法。通过在我的customLaunchers中进行最小配置,仅带有“ --no-sandbox”标志,而没有操纵p,我可以通过在Docker容器中正确设置以下环境变量来运行我的茉莉花测试用例:
CHROME_BIN = / usr / bin / chromium-browser and CHROME_PATH = / usr / lib / chromium /
下面是我在终端中运行以检查测试是否成功执行的命令:
docker run -e CHROME_BIN = / usr / bin / chromium-browser -e CHROME_PATH = / usr / lib / chromium / -v项目路径:/ usr / src / app -w / usr / src / app dockerImage sh -c“ apk addchrome && npm install && npm rebuild node-sass && npm run test:ci”
在我的jenkins文件中,我添加了以下几行以在Jenkins管道中运行测试用例:
withEnv([“ CHROME_BIN = / usr / bin / chromium-browser”,“ CHROME_PATH = / usr / lib / chromium /”]){sh'apk添加铬&& npm install && npm运行测试:ci && npm run build'}