package main import "testing" // TestCaseNameMatches 锁住 `-case` 的匹配语义:**按名字首段精确匹配**。 // // 这条不是洁癖:纯子串匹配会让 `-case C1-5` 把 `C1-5b` 一起带进来, // "本次应跑/实跑"的数就错了,正好让"hash + 总数 + 通过数三者对齐"失效。 func TestCaseNameMatches(t *testing.T) { name5 := "C1-5 清零前置校验·校区余额 > 全局余额(legacy 静默 vs Go 3120)" name5b := "C1-5b 清零前置校验·校区余额 > 全局余额(真实 3 位构型,2 位收敛后守卫消失)" if !caseNameMatches(name5, "C1-5") { t.Error("-case C1-5 应命中 C1-5") } if caseNameMatches(name5b, "C1-5") { t.Error("-case C1-5 **不得**命中 C1-5b(子串匹配的坑)") } if !caseNameMatches(name5b, "C1-5b") { t.Error("-case C1-5b 应命中 C1-5b") } if caseNameMatches(name5, "C1-5xx") { t.Error("打错名字必须一条都不命中(否则会以 0 个 case 退出 0)") } if !caseNameMatches(name5, name5) { t.Error("全名必须能精确命中") } // "C1-1" 不得命中 "C1-10"/"C1-11"(前缀但不同 token) if caseNameMatches("C1-10 取消充值活动·退成负数", "C1-1") { t.Error("-case C1-1 不得命中 C1-10") } }