[已解决] 本地开发环境 regression测试配置失败

Viewed 16

按照文档https://doris.apache.org/zh-CN/community/developer-guide/regression-testing#%E6%A6%82%E5%BF%B5 我以此进行了如下的部署和配置修改:

修改fe、be 的config文件

fe.conf

  • LOG_DIR="${DORIS_HOME}/log/"
  • JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  • meta_dir = ${DORIS_HOME}/doris-meta
  • jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers

be.conf

  • LOG_DIR="${DORIS_HOME}/log/"
  • JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  • storage_root_path = ${DORIS_HOME}/storage
  • jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers

本地部署

由于本地开发环境, 我仅启动一个fe和一个be (回归测试写的sql有添加设置副本数为1而不是3)

./fe/bin/start_fe.sh --daemon
mysql -uroot -P9030 -h127.0.0.1
mysql> ALTER SYSTEM ADD BACKEND "127.0.0.1:9050";

./be/bin/start_be.sh --daemon -- 在当前shell窗口执行(在其他shell窗口执行我也试过了)

这里部署完毕,本地可以再连上mysql执行我写的sql语句且全部符合预期

执行回归测试

由于都采用默认配置,回归测试的config文件我没做任何修改,下面是我不同的尝试:

./run-regression-test.sh --run ./regression-test/suites/query_p0/xxx/xxx.groovy -genOut
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.15, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "6.6.87.2-microsoft-standard-wsl2", arch: "amd64", family: "unix"
===== Run Regression Test =====
....
....

等待很久以后能够看到如下结果

....
....
2025-07-23 02:00:47.410 INFO [main] (RegressionTest.groovy:101) - === run 0 time ===
2025-07-23 02:00:47.415 INFO [main] (RegressionTest.groovy:312) - run scripts in directories: []
2025-07-23 02:00:47.415 INFO [main] (RegressionTest.groovy:314) - Start to run load scripts
2025-07-23 02:00:51.572 INFO [main] (RegressionTest.groovy:281) - Start to run single scripts
2025-07-23 02:00:55.859 INFO [main] (RegressionTest.groovy:318) - Start to run scripts
2025-07-23 02:02:26.325 INFO [main] (RegressionTest.groovy:281) - Start to run single scripts
2025-07-23 02:05:06.014 INFO [main] (RegressionTest.groovy:492) - All suites success.
 ____   _    ____ ____  _____ ____
|  _ \ / \  / ___/ ___|| ____|  _ \
| |_) / _ \ \___ \___ \|  _| | | | |
|  __/ ___ \ ___) |__) | |___| |_| |
|_| /_/   \_\____/____/|_____|____/

2025-07-23 02:05:06.014 INFO [main] (RegressionTest.groovy:440) - Test 0 suites, failed 0 suites, fatal 0 scripts, skipped 0 scripts
2025-07-23 02:05:06.014 INFO [main] (RegressionTest.groovy:126) - Test finished

我发现run scripts in directories: [] 显示为空白后,我尝试阅读了脚本文件和配置文件,发现了“suitePath = "${DORIS_HOME}/regression-test/suites"”配置项,因此我重新输入:

./run-regression-test.sh --run query_p0/xxx/xxx.groovy -genOut
....

得到相同的结果,scripts的内容依旧为[]。 我继续尝试修改RegressionTest.groovy中的runScript(...)来直接运行我想要的测试文件,此时执行回归测试的结果为run scripts in directories: query_p0/xxx/xxx.groovy 且很快就执行成功, 但是并没有产生我想要的.out文件。

我想要知道是哪儿配置错了,以及回归测试的文档说明能否更新的更详细一些。

1 Answers

Test 0 suites,说明没有触发任何case。正确的用法是:
./run-regression-test.sh --run -s caseName -genOut
其中caseName是suite里面填写的case名