[英]Could not run jasmine test case in docker container in Jenkins pipeline
我一直在嘗試為我在 docker 容器中的Angular 7
編寫的 UI 代碼運行jasmine
測試,該容器構建在node:10-alpine
上。 我試圖運行安裝 chromium 和 puppeteer,但我的 chrome headless 似乎沒有被捕獲。 我收到以下錯誤:
WARN [launcher]: ChromeHeadless 沒有在 210000 毫秒內捕獲,正在殺死。
WARN [launcher]: ChromeHeadless 在 2000 毫秒內沒有被殺死,發送 SIGKILL。 WARN [launcher]: ChromeHeadless 沒有在 2000 毫秒內被 SIGKILL 殺死,> 繼續。 npm 錯誤! 代碼 ELIFECYCLE npm 錯誤! 錯誤號 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”標志且沒有 puppeteer 的配置最少,我能夠通過正確設置以下環境變量在 docker 容器中運行我的 jasmine 測試用例:
CHROME_BIN=/usr/bin/chromium-browser 和 CHROME_PATH=/usr/lib/chromium/
以下是我在終端中運行以檢查測試是否成功執行的命令:
docker 運行 -e CHROME_BIN=/usr/bin/chromium-browser -e CHROME_PATH=/usr/lib/chromium/ -v path-to-project:/usr/src/app -w /usr/src/app dockerImage sh - c“apk add chromium && npm install && npm 重建 node-sass && npm 運行測試:ci”
在我的 jenkins 文件中,我添加了以下行來運行 Jenkins 管道中的測試用例:
withEnv(["CHROME_BIN=/usr/bin/chromium-browser", "CHROME_PATH=/usr/lib/chromium/"]) { sh 'apk add chromium && npm install && npm run test:ci && npm run build' }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.