test: 测试库改为模板克隆并纳入完整租号 e2e
每个包不再重复 DROP+迁移,清空改用 DELETE 并重置自增,go test ./... 从约 6 分钟降到十几秒。租号全链路改走 NewTestDB,去掉依赖额外 DSN 才会跑的过渡测试。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -8,7 +8,7 @@ OUTPUT="$(mktemp -t hfb-backend-cover-output.XXXXXX)"
|
||||
trap 'rm -f "${PROFILE}" "${OUTPUT}"' EXIT
|
||||
|
||||
cd "${BACKEND_DIR}"
|
||||
# 每个测试包使用独立 MySQL 测试库,可并发执行。
|
||||
# 模板库只迁移一次,各包克隆后可并发;指纹未变则跨次运行复用。
|
||||
go test -count=1 -coverprofile="${PROFILE}" ./... | tee "${OUTPUT}"
|
||||
|
||||
coverage_for_package() {
|
||||
|
||||
+1
-2
@@ -96,8 +96,7 @@ if [[ "${SKIP_BACKEND}" == "0" ]]; then
|
||||
run_step "go vet ./..." go vet ./... || FAILED=1
|
||||
run_step "go build ./..." go build ./... || FAILED=1
|
||||
if [[ "${SKIP_TESTS}" == "0" ]]; then
|
||||
# 后端测试跑在真实 MySQL 上:每个包使用独立测试库 hfb_sys_test_<包名>,可并发执行。
|
||||
# 真实链路 e2e(internal/e2e 中依赖 HFB_E2E_DSN 的用例)需要显式配置该变量。
|
||||
# 后端测试跑在真实 MySQL 上:模板库只迁移一次,各包克隆后可并发。
|
||||
run_step "准备 MySQL 测试库" bash "${ROOT_DIR}/scripts/prepare-test-db.sh" || FAILED=1
|
||||
run_step "go test + coverage" bash "${ROOT_DIR}/scripts/check-backend-coverage.sh" || FAILED=1
|
||||
else
|
||||
|
||||
@@ -43,4 +43,4 @@ GRANT ALL PRIVILEGES ON \`${pattern}\_%\`.* TO '${app_user}'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
SQL
|
||||
|
||||
printf '测试库授权已就绪。测试运行时会自动重建各自的库:%s_<包名>\n' "${base_database}"
|
||||
printf '测试库授权已就绪。测试运行时会维护模板库 %s__template,并按包克隆为 %s_<包名>\n' "${base_database}" "${base_database}"
|
||||
|
||||
Reference in New Issue
Block a user