用TSL-cli运行测试用例
使用tsl-cli命令行工具来执行测试用例。
安装和配置
把安装包解压缩到某个目录,例如c:\tsl-cli。
配置tsl-cli.ini:
;;; 如果需要在天软.Net服务器上运行,请配置Server
[server:sz]
host = tsl.tinysoft.com.cn
port = 443
user =
password =
[server:wh]
host = wh.tinysoft.com.cn
port = 443
user =
password =
;;; 配置测试案例
[test]
;;; 测试案例的fixtures目录
fixture =
;;; 查找用户数据的设置
[funcext]
;;; 指定本地运行时对应的用户名,例如可以指定为天软账号的用户名
local_alias =
注意:tsl-cli.ini的查找次序是先找当前目录,再找用户的home目录(环境变量%HOME%,Windows下通常是c:\Users\用户名,Linux下是/home/用户名)。建议把tsl-cli.ini文件放到用户的home目录,这样比较方便。
run-test
tsl-cli.exe --run-test <测试案例文件列表 或者 测试案例目录 > --server <配置中的服务器名,例如sz> --fixture <测试案例的fixtures目录>
参数说明
-
如果--run-test参数指定的是目录,将会遍历目录中以test_开头的文件来进行测试。
-
如果没指定--server参数,将在本地运行。
测试案例编写说明
语法
TEST_CASE(测试用例名称)
BEGIN
// 设置相关参数和初始化
...
// 开始测试
CHECK(exp); // 检查表达式结果是否为真,不为真则记录测试失败,例如 x > y
CHECK_FALSE(exp); // 检查表达式结果是否为假,不为假则记录测试失败
CHECK_EQ(x,y); // 检查两个数x和y是否相等
CHECK_NE(x,y); // 检查 x <> y
CHECK_GT(x,y); // 检查 x > y
CHECK_LT(x,y); // 检查 x < y
CHECK_GE(x,y); // 检查 x >= y
CHECK_LE(x,y); // 检查 x <= y
VERIFY(x); // 比对结果,x 必须是字符串类型,例如可以tostn()来转成字符串
END;
Verify说明
-
每个测试案例只能有一个verify,因为需要用测试案例的名称来生成结果比对文件。
-
预期结果文件是在存放在设置的fixture目录的golden/测试案例名称.txt。
-
比较失败或者没有golden文件的时候,会在设置的fixture目录的run目录生成测试用例名称.txt。这样可以用外部文件比较工具(例如BeyondCompare等)进行进一步的比较,也可以把这个文件拷贝到golden目录来做预期结果文件。
测试案例范例
test_case("tostn_float")
begin
CHECK_EQ(tostn(1.0), "1.0");
end;
test_case("tostn_array")
begin
VERIFY(tostn(array(1,2,3)));
end;
运行:
tsl-cli --run-test d:\tests\test_stn.tsl --server sz
打印结果:
run test case "tostn_float" ok.
run test case "tostn_array" ok.
run total 2 test case, 2 passed, 0 failed.
如果有错误,会打印:
run test case "tostn_float" error ->
result: tostn_float,line:3, "1" <> "1.0"
CHECK_EQ(tostn(1.0), "1.0");
run test case "tostn_array" ok.
run total 2 test case, 1 passed, 1 failed.
使用指南
- 测试案例中如何加入辅助函数?
加到测试案例的前面即可,相关辅助函数必须在测试案例的前面,测试案例和辅助函数必须分开。
Function TD_Str01(num);
Begin
str(num,s1);
return S1;
End;
Function TD_Val01(s);
Begin
Val(s,v,Code);
return array(v,code);
End;
test_case("系统函数_字符串函数_1")
begin
{ 将一个实数X转换成字符串,存到参数S中 }
CHECK_EQ(TD_Str01(777.11), "7.7711000000000000E+0002");
end;
test_case("系统函数_字符串函数_2")
begin
{ 将一个字符串S转换成实数V,如果成功,则Code置0,否则Code表示转换不成功的字符的位置 }
CHECK_EQ(TD_Val01('7.7711E+0002'), array(777.11,0));
end;
- 如何在本地运行时可以用到天软账号中的函数、板块和用户表数据?
可以先用download方法下载相关用户数据,然后就可以用到了。
tsl-cli --download --server sz
需要配置tsl-cli.ini中的[funcext]下的local_alias到对应的用户名。
- 如何在本地运行时可以访问股票相关的数据?
针对天软内部开发人员和落地服务器有这个功能,可以在命令行指定数据目录。(该功能处于预览测试阶段,请谨慎使用。)
tsl-cli --run-test d:\tests --hqdb d:\tinysoft\bin
tsl-cli my.tsl --hqdb d:\tinysoft\bin
tsl-cli --shell --hqdb d:\tinysoft\bin