2个不稳定版本
0.1.0 | 2024年2月24日 |
---|---|
0.0.0 | 2022年6月9日 |
1583 在 数据库接口 中
16KB
319 行
SQLPlannerTest
基于yaml的SQL规划器测试框架。
SQLPlannerTest是一个回归测试框架。它将读取一个特殊的yaml文件来描述测试用例,调用数据库系统生成结果,并将结果存储在一个特殊的回归测试文件格式中。
以下是测试描述文件的示例
- id: sql1
sql: |
CREATE TABLE t1(v1 int);
- id: sql2
sql: |
CREATE TABLE t2(v2 int);
- sql: |
SELECT * FROM t1, t2 WHERE t1.v1 = t2.v2;
desc: Test whether join works correctly.
before: ["*sql1", "*sql2", "CREATE TABLE t3(v3 int);"]
tasks:
- logical
- physical
基本上,它就像
- id: <test case id> # which will be referenced by `before`
sql: SELECT * FROM table;
desc: Description of this test case
before:
- "*test_case_1" # use *id to reference to another test case
- "*test_case_2"
- CREATE TABLE t2(v2 int); # or directly write a SQL here
tasks: # run logical and physical test for this case
- logical
- physical
它将生成一个描述结果的文件。开发者可以通过比较回归测试结果来查看在整个过程中发生了什么变化。
NaiveDB
用于测试sqlplannertest的简单数据库系统。
更新测试用例
cargo run -p naivedb --bin apply
验证测试用例
cargo test -p naivedb
# or use nextest
cargo nextest run -p naivedb
依赖项
~6–16MB
~185K SLoC