doris提交pull request时一般要包含回归测试,回归测试的目录在doris/regression-test,
有文档较好的说明了回归测试过程:
回归测试 - Apache Doris
跑回归测试就是执行doris目录下的
./run-regression-test.sh --run <回归测试名>
这个<回归测试名>是,在groovy文件中定义测试用例时定义的,例如:
suite("test_create_or_replace_view")
要增加自己的回归测试,可以在 /home/postgres/doris/regression-test/suites 目录下增加groovy文件,doris的回归测试脚本用groovy脚本编写,groovy是一种和java一样的脚本语言(兼容java),但又不如java严格,使用JVM解释,所以能运行java的环境也能运行groovy,doris用实现了一个回归测试框架,就是说编写了一个java程序,执行./run-regression-test.sh时如果测试框架未编译,会先编译这个测试框架,然后测试框架调用groovy脚本执行回归测试。
执行回归测试前要搭建起doris环境,即fe、be要配置好,并且测试框架的配置文件regression-test/conf/regression-conf.groovy要配置好连接fe的IP、端口、用户名等待信息。
回归测试的原理和其它数据库回归测试的原理类似,即执行SQL打印输出,保留正确的输出,与新代码跑出的SQL输出比较,如果相同说明新代码没有引入问题。
如果是增加新SQL功能就用 ./run-regression-test.sh --run <回归测试名> -genOut 来生成新的结果。
但是doris的回归测试框架,除了这个功能,还扩展出其它功能,能进行超出SQL结果比较的,其它功能的测试。具体用法都可以上面的官方文档。
在我的本机上执行所有回归测试时,发现有一些失败的,我估计是我的集群配置问题(我在一台机器上部署了一个fe节点+一个be节点),通过问社区的同学,回答是不必本地所有的回归测试用例通过,只要自己的测试用例通过就行,估计CI环境上会跑一些回归测试。