跳转至

用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目录>

参数说明

  1. 如果--run-test参数指定的是目录,将会遍历目录中以test_开头的文件来进行测试。

  2. 如果没指定--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.
fixture目录:
D:\TESTS\FIXTURES
├─golden
│      tostn_array.txt
└─run

使用指南

  • 测试案例中如何加入辅助函数?

加到测试案例的前面即可,相关辅助函数必须在测试案例的前面,测试案例和辅助函数必须分开。

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