修改挂载方式
This commit is contained in:
@@ -66,48 +66,42 @@ echo ""
|
||||
echo "===== [3/3] 启动容器并运行测试... ====="
|
||||
set +e
|
||||
|
||||
docker run --rm --init --ipc=host \
|
||||
docker run -d --rm --init --ipc=host \
|
||||
--name e2e-test-runner-container \
|
||||
\
|
||||
`# 网络模式:host` \
|
||||
--network host \
|
||||
\
|
||||
`# 用户权限映射` \
|
||||
-u "$CURRENT_UID:$CURRENT_GID" \
|
||||
\
|
||||
`# 环境变量注入` \
|
||||
-u "root" \
|
||||
-e DEVSTAR_URL="$DEVSTAR_URL" \
|
||||
-e E2E_SKIP_INSTALL="$E2E_SKIP_INSTALL" \
|
||||
-e E2E_USERNAME="$E2E_USERNAME" \
|
||||
-e E2E_PASSWORD="$E2E_PASSWORD" \
|
||||
-e E2E_MODE="$E2E_MODE" \
|
||||
-e CI="$CI" \
|
||||
\
|
||||
`# 挂载 Volume ` \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v "$(pwd)/tests/e2e/reports":/app/playwright-report \
|
||||
-v "$(pwd)/tests/e2e/package.json":/app/package.json \
|
||||
-v "$(pwd)/playwright.config.ts":/app/playwright.config.ts \
|
||||
-v "$(pwd)/tests/e2e/global-setup.ts":/app/global-setup.ts \
|
||||
-v "$(pwd)/tests/e2e/specs":/app/specs \
|
||||
-v "$(pwd)/tests/e2e/node_modules":/app/node_modules \
|
||||
-v "$(pwd)/tests/e2e/package-lock.json":/app/package-lock.json \
|
||||
\
|
||||
-w /app \
|
||||
\
|
||||
`# 临时 npm 缓存目录,防止权限问题` \
|
||||
-e npm_config_cache=/tmp/npm-cache \
|
||||
-e HOME=/tmp \
|
||||
\
|
||||
`# 镜像名` \
|
||||
-w /app \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
mcr.microsoft.com/playwright:v1.53.2-jammy \
|
||||
`# 运行命令` \
|
||||
bash -c "echo '正在安装依赖...' && npm install --no-package-lock&& echo '依赖安装完成,开始测试...' && npx playwright test"
|
||||
|
||||
tail -f /dev/null
|
||||
echo "容器已启动,正在使用 docker cp 注入代码..."
|
||||
docker cp "$(pwd)/tests/e2e/package.json" e2e-test-runner-container:/app/package.json
|
||||
docker cp "$(pwd)/playwright.config.ts" e2e-test-runner-container:/app/playwright.config.ts
|
||||
docker cp "$(pwd)/tests/e2e/global-setup.ts" e2e-test-runner-container:/app/global-setup.ts
|
||||
docker cp "$(pwd)/tests/e2e/specs" e2e-test-runner-container:/app/specs
|
||||
docker exec e2e-test-runner-container bash -c "
|
||||
# 确保 node_modules 目录存在
|
||||
mkdir -p /app/node_modules
|
||||
|
||||
echo '正在安装依赖...'
|
||||
npm install --no-package-lock
|
||||
|
||||
echo '依赖安装完成,开始测试...'
|
||||
npx playwright test
|
||||
"
|
||||
# 捕获 test-runner 的退出码
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
|
||||
docker cp e2e-test-runner-container:/app/playwright-report/. "$(pwd)/tests/e2e/reports/"
|
||||
docker rm -f e2e-test-runner-container
|
||||
echo "========================================"
|
||||
if [ $EXIT_CODE -eq 0 ]; then
|
||||
echo "测试执行成功!"
|
||||
|
||||
Reference in New Issue
Block a user