test(e2e): 第5刀a L4 进程级冒烟编排 + HTTP 段
真起 server 二进制(sqlite + Redis)跑 HTTP 用户旅程,验证 in-process 测试给不了的 信心(二进制起/迁移/路由/鉴权/DB 端到端): - scripts/e2e-smoke.sh:起栈编排(Redis 三选一:已有 addr / docker / 内嵌 miniredis 兜底)+ 随机端口 + trap 清理;调 Go driver - server/test/e2e/smoke_test.go (tag e2e):造用户(复用 argon2 HashPassword) → 登录 → /v1/me(dp_uuid/plan/email) → /v1/usage 鉴权 + 无 token 401 - server/test/e2e/miniredis (tag e2e):无 docker 时 Redis 兜底 launcher - 本地绿;go build/test ./...(无 tag)仍 25 包绿,tag e2e 文件被静默跳过 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
//go:build e2e
|
||||
|
||||
// Command miniredis 起一个进程内的 miniredis 实例,打印监听地址(host:port)到 stdout
|
||||
// 然后阻塞,直到收到 SIGINT/SIGTERM。供 scripts/e2e-smoke.sh 在无 docker / 无本地
|
||||
// redis-server 时作为 Redis 兜底——server 进程经真 TCP 连它。build tag e2e:不进常规构建。
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/alicebob/miniredis/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
m, err := miniredis.Run()
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "miniredis:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
// 第一行 = 监听地址,脚本读它作为 REDIS_ADDR。
|
||||
fmt.Println(m.Addr())
|
||||
|
||||
ch := make(chan os.Signal, 1)
|
||||
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-ch
|
||||
m.Close()
|
||||
}
|
||||
Reference in New Issue
Block a user