跳到主要内容
版本:1.0

Sqlness 测试

介绍

SQL 是 GreptimeDB 的一个重要用户接口。我们为它提供了一个单独的测试套件(名为 sqlness)。

Sqlness 手册

测试文件

Sqlness 有两种类型的文件

  • .sql:测试输入,仅包含 SQL
  • .result:预期的测试输出,包含 SQL 和其结果

.result 文件是预期的执行输出。如果 .result 文件发生变化,意味着测试结果不同,测试可能失败。你应该检查变更日志来解决问题。

你只需要在 .sql 文件中编写测试 SQL,然后运行测试。

组织测试案例

输入案例的根目录是 tests/cases。它包含几个子目录,代表不同的测试模式。例如,standalone/ 包含所有在 greptimedb standalone start 模式下运行的测试。

在第一级子目录下(例如 cases/standalone),你可以随意组织你的测试案例。Sqlness 会递归地遍历每个文件并运行它们。

运行测试

与其他测试不同,这个测试工具是以二进制目标形式存在的。你可以用以下命令运行它

cargo run --bin sqlness-runner bare

它会自动完成以下步骤:编译 GreptimeDB,启动它,抓取测试并将其发送到服务器,然后收集和比较结果。你只需要检查是否有 .result 文件发生变化。如果没有,恭喜你,测试通过了 🥳!

运行特定测试

cargo sqlness bare -t your_test

-t--test-filter 选项接受正则表达式字符串。Sqlness 会检查格式为 env:case 的案例名称。