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:

 

评分:0

我来说两句

Open Toolbar