| 1234567891011121314151617181920212223242526272829303132 |
- 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")
- }
- }
|