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 的案例名称。