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