TestLink - Search Test Cases by Author
上一篇 /
下一篇 2012-03-07 11:57:20
/ 个人分类:Testlink
Testlink中一个模块是专门用来查询
Test Cases,此查询模块中包括了几乎Test Case中的所有查询条件,唯独没有按Test Case的创建者查询的条件.
仔细研究了其
数据库结构及lib/testcase/tcSearch.php文件后,按如下步骤可以完成按Author查询TestCase的功能:
1. 查看数据库所有表
- 数据库表中,与test case 的 author 有关的数据存放于tcversions这个表中,此表中存放的是author的id,即author_id
- 要想知道Author的名称的话,必须交叉访问users表中的login字段才可以得到,这2个表是通过 users.id = tcversions.author_id 关联起来的
2. 了解了表结构,再来看看lib/testcase/tcSearch.php文件中的内容
- $tables = tlObjectWithDB::getDBTables(array()) 中加入 'users'这个表
- 在$sqlPart2=""中加入联合查询users表,JOIN {$tables['users']} US ON US.id = TCV.author_id
- 在 $sqlFields = ""; 中加入author名称的字段”US.login“
- 在if(args->name != ""){...} 下面和if(args->summary != "")上面加入如下代码以便按用户输入的Author name进行模糊查询
if($args->login != "") {
$args->login =
$db->prepare_string($args->login);
$filter['by_author'] =
" AND US.login like '%{$args->login}%' ";
} |
- 在$iParams = array()中加入如下参数,主要作用是进行参数的名称及类型的定义
"login" => array(tlInputParameter::STRING_N,0,50), |
3. 上表内容修改完成后,还要到gui\templates\testcases中找到“tcSearchForm.tpl“ 进行页面上显示内容的修改
- 在 {lang_get var="labels" s='' 中 author 值, 这个是在页面上查询页面上显示出来的名称
- 找好要显示author字段的位置,并加入如下代码
| <tr> <td>{$labels.author}</td> <td><input type="text" name="login" size="{#TCNAME_SIZE#}" maxlength="{#TCNAME_MAXLEN#}" /></td> </tr> |
|
| |
- 注意 name 的值必须与lib/testcase/tcSearch.php - $iParams = array()中定义的值一致,否则查询不会成功; 如 在tcSearch.php中定义的名称为"login",在此处的name也必须是"login"
4. 如果有需要可以重启apache服务
5. 重启成功后,到 Search Test Case页面,可以看到Author字段,也可按Author进行搜索,如下图
收藏
举报
TAG: