R106/A1-A6 固化自动视觉巡检门禁
这个提交包含在:
+47
-3
@@ -36,7 +36,7 @@ qa_require_cmd() {
|
||||
|
||||
qa_usage() {
|
||||
cat <<USAGE
|
||||
Usage: bash scripts/qa/run-web-gates.sh <smoke-local|full-local|r70-assist-local|smoke-live>
|
||||
Usage: bash scripts/qa/run-web-gates.sh <smoke-local|full-local|r70-assist-local|r106-visual-local|smoke-live>
|
||||
|
||||
可选环境变量:
|
||||
QA_PORT / QA_HOST
|
||||
@@ -44,6 +44,7 @@ Usage: bash scripts/qa/run-web-gates.sh <smoke-local|full-local|r70-assist-local
|
||||
QA_DB_CLIENT=host|docker
|
||||
QA_DB_DOCKER_CONTAINER / QA_DOCKER_USE_SG=1
|
||||
QA_DB_PREFIX / QA_DB_NAME / QA_KEEP_DB
|
||||
QA_SKIP_CLIENT_BUILD=1 复用已有 client/dist(低内存远程机排查视觉问题时使用)
|
||||
LIVE_SMOKE_BASE_URL / LIVE_SMOKE_ADMIN_* / LIVE_SMOKE_EMPLOYEE_* / LIVE_EXPECT_WECOM_STATUS
|
||||
USAGE
|
||||
}
|
||||
@@ -257,6 +258,7 @@ qa_cleanup() {
|
||||
|
||||
qa_export_app_env() {
|
||||
export NODE_ENV=test
|
||||
export NODE_OPTIONS="${NODE_OPTIONS:---max-old-space-size=4096}"
|
||||
export HOST="$QA_HOST"
|
||||
export PORT="$QA_PORT"
|
||||
export APP_ORIGIN="$QA_BASE_URL"
|
||||
@@ -288,6 +290,13 @@ qa_export_app_env() {
|
||||
}
|
||||
|
||||
qa_prepare_db() {
|
||||
echo ">>> 生成并校验 Prisma Client"
|
||||
(
|
||||
cd "$SERVER_DIR"
|
||||
npm run prisma:generate
|
||||
npm run prisma:check-generated
|
||||
)
|
||||
|
||||
echo ">>> 创建临时数据库: $QA_DB_NAME"
|
||||
qa_createdb
|
||||
|
||||
@@ -327,10 +336,21 @@ qa_start_server() {
|
||||
}
|
||||
|
||||
qa_build_client() {
|
||||
if [[ "${QA_SKIP_CLIENT_BUILD:-0}" == "1" ]]; then
|
||||
if [[ ! -f "$CLIENT_DIR/dist/index.html" ]]; then
|
||||
echo "[ERROR] QA_SKIP_CLIENT_BUILD=1 但 client/dist/index.html 不存在,请先执行 client 构建。" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ">>> 复用已有 client dist(QA_SKIP_CLIENT_BUILD=1)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo ">>> 构建 client dist"
|
||||
(
|
||||
cd "$CLIENT_DIR"
|
||||
npm run build
|
||||
npx tsc --noEmit --pretty false --extendedDiagnostics
|
||||
npx vite build
|
||||
)
|
||||
}
|
||||
|
||||
@@ -371,7 +391,7 @@ qa_run_full_local() {
|
||||
echo ">>> 执行 client typecheck"
|
||||
(
|
||||
cd "$CLIENT_DIR"
|
||||
npm run typecheck
|
||||
npx tsc --noEmit --pretty false --extendedDiagnostics
|
||||
)
|
||||
|
||||
qa_build_client
|
||||
@@ -418,6 +438,22 @@ qa_run_r70_assist_local() {
|
||||
)
|
||||
}
|
||||
|
||||
qa_run_r106_visual_local() {
|
||||
qa_select_port
|
||||
export JOBS_ENABLED="${JOBS_ENABLED:-true}"
|
||||
qa_export_app_env
|
||||
qa_prepare_db
|
||||
qa_build_client
|
||||
qa_start_server
|
||||
|
||||
echo ">>> 执行 R106 自动视觉巡检"
|
||||
(
|
||||
cd "$CLIENT_DIR"
|
||||
rm -rf test-results playwright-report
|
||||
E2E_MODE=local npm run test:e2e:r106-visual-audit
|
||||
)
|
||||
}
|
||||
|
||||
qa_run_live_smoke() {
|
||||
local live_base_url="${LIVE_SMOKE_BASE_URL:-https://oa.hyinda.com}"
|
||||
echo ">>> 探活 live /ready: ${live_base_url}/ready"
|
||||
@@ -456,6 +492,14 @@ case "$MODE" in
|
||||
trap qa_cleanup EXIT
|
||||
qa_run_r70_assist_local
|
||||
;;
|
||||
r106-visual-local)
|
||||
qa_require_cmd curl
|
||||
qa_require_db_client
|
||||
qa_require_cmd node
|
||||
qa_require_cmd npm
|
||||
trap qa_cleanup EXIT
|
||||
qa_run_r106_visual_local
|
||||
;;
|
||||
smoke-live)
|
||||
qa_require_cmd curl
|
||||
qa_require_cmd node
|
||||
|
||||
在新工单中引用
屏蔽一个用户