make ut和single test结果不一样:TestLoadPartitionStats

【 TiDB 版本】7.5.1
【复现路径】下载了tidb的包,make ut会有一些测试失败,其中有一个是TestLoadPartitionStats,失败原因如下;但是当单独跑这个测试的时候,这个测试会通过。

make ut 的部分结果:

--- FAIL: TestLoadPartitionStats (3.09s)
    dump_test.go:37: 
        	Error Trace:	/home/qianwang/workspace/tidb-server/tidb-server/pkg/statistics/handle/storage/dump_test.go:37
        	            				/home/qianwang/workspace/tidb-server/tidb-server/pkg/statistics/handle/storage/dump_test.go:222
        	Error:      	Not equal: 
        	            	expected: 10000
        	            	actual  : 625
        	Test:       	TestLoadPartitionStats

单独跑这个测试的语句:

make failpoint-enable
cd tidb-server/pkg/statistics/handle/storage
go test -v -run "^TestLoadPartitionStats$"
cd ../../../../..
make failpoint-disable

测试通过:

--- PASS: TestLoadPartitionStats (1.76s)
PASS
ok  	github.com/pingcap/tidb/pkg/statistics/handle/storage	2.016s

像 tidb 这样的超大型项目,内部已经开始使用bazel 来执行 UT。因为其支持分布式执行,remote cache,以及自动对测试进行隔离。所以 make ut,本质上已经被淘汰了。

出现这种问题,一般来说是测试之间出问题了串味的问题,即一个测试完成之后,他遗留的配置和数据,影响到了下一个测试。

2 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。