1. 约定

测试文件的名字使用 *_SUITE.erl 形式,模块中包含 ct.hrl,测试文件需要导出 all/0 函数,其返回待执行的测试用例组和测试用例的列表。

1.1. Init and End per Suite

1.2. Init and End per Test Case

1.3. Test Case Information Function

对于每个测试用例函数,可以存在与其同名,但不带参数的函数。这就是测试用例信息函数。它返回带标记的元组的列表,每个元组指定关于测试用例的各种属性。比如:

下面是一个测试用例信息函数示例:

1.4. Test Suite Information Function

在测试套件模块中,函数 suite/0 可以用于设置默认的 timetrap 值,以及 require 外部的配置数据。如果测试用例或组信息函数也指定了信息标签,那么其重写由 suite/0 指定的默认值。

下面是一个套件信息函数示例:

1.5. 测试用例组

测试用例组是共享配置函数和执行属性的一组测试用例。通过函数 groups/0,定义测试用例组。groups/0 应该返回具有如下语法的 term:

GroupName 是组名,在测试套件模块中,必须唯一。通过在其它组的 GroupsAndTestCases 列表中包含组定义的方式,可以嵌套组。Properties 是用于组的执行属性列表。可选值如下:

解释:

示例:

为指定组的执行顺序(也涉及到不属于任何组的测试用例),将 {group,GroupName} 形式的元组添加到 all/0 列表。

示例:


2. 示例

2.1. 项目结构

spec.spec:

demo/demo_SUITE.erl:

2.2. 运行测试