- 安装pytest以及相关工具
- pip3 install -r requirements.txt
- 设置环境变量
- 设置结果输出目录
- export NEBULA_TEST_LOGS_DIR=xxx
- 设置结果输出目录
- 运行测试程序
- 进入Nebula编译目录下的 tests 目录
- ./ntr query/stateless/
- 可以通过 --rm_dir=false 取消删除创建的临时目录 /tmp/nebula-XXXXXXXX
- 可以通过 --stop_nebula=false 取消停止 nebula 服务
- 可以通过 --address=ip:port 连接自己的服务
- 测试如何编写
- 例子:query/stateless/test_simple_query.py
- 其中每一个功能 test case 都是一个类,而这个类必须继承 NebulaTestSuite.
- 这里每一个 test_xxx 都是一个 case.
- 这里特殊的两个方法则是 prepare 和 cleanup,分别是 case 的启动和退出的时候被调用.
- 框架提供的函数
- execute(ngql)
- 用来执行非查询的一些语句,比如insert/show等等
- execute_query(ngql)
- 用来执行查询语句
- check_resp_succeeded(resp)
- 用来检测返回的值是否成功
- check_resp_failed(resp)
- 和check_resp_succeeded相反
- search_result(col, rows, expect)
- 用来检测返回的行是否和期望一致,这里行可以是乱序,并且列值支持正则, 使用正则的时候,需要设置下 is_regex=True, 并且所有列都要用正则
- check_result(rows, expect)
- 用来检测返回的行和期望一致,这里是行是按照严格顺序,并且列值支持正则, 需要设置下 is_regex=True, 并且所有列都要用正则
- check_out_of_order_result
- 用来检测返回的行是否和期望一致,行可以是乱序,不支持正则
- check_empty_result
- 用来检测结果是否为空
- check_path_result(rows, expect)
- 用来检测路径查询结果是否正确
- execute(ngql)
- 框架提供的变量
- 这几个变量都是为了防止我们做查询或者插入时 schema 没有同步导致出错.
- graph_delay
- graphd和meta同步的时间间隔
- storage_delay
- storaged和meta同步的时间间隔
- delay
- 上面两个值之间的最大值
- 运行 pylint
在 nebula 的源码目录执行:
pylint -j4 --rcfile=tests/.pylintrc tests
tests
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||