TestLink 增加在执行用例界面的历史相关bug功能

在之前配置TestLink的过程中,考虑在执行的过程中,显示该用例关联过的缺陷,作为测试执行参考,需要在execSetResults.php里面增加部分代码,代码如下:

//blew function is added by hengleiwang 2013/3/21
/*
Add this function to list all of them bugs that have been related to this testcases
*/
   
function exec_get_testcase_related_bugs(&$db,&$bug_interface,$tcversionSet)
{
    $bugs = null;
    $bugs = get_bugs_for_testcase($db,$bug_interface,$tcversionSet);
    return $bugs;
       
}
$gui->case_related_bug = exec_get_testcase_related_bugs($db,$g_bugInterface,$gui->tcversionSet);
if (count($gui->case_related_bug) == 0) 
{
  $gui->case_related_bug = null;
}
inc_exec_controls.tpl

{*input the code here for test cases related bugs;*---by henrywang}
{* Execution Bugs (if any) *}
        {if isset($gui->case_related_bug)}
        <div class="exec_history_title">
        关联到这个用例的缺陷
        </div>
        <table style="95%;">
        <tr style="background-color: {$bg_color}" >
            <td colspan="{$my_colspan}" style="align:center;">
                {*BUGID 3587*}
                {include file="inc_show_bug_table_without_del.tpl"
                     bugs_map=$gui->case_related_bug
                }
            </td>
        </tr>
        {/if}
    </table>
{*end the input*------by henrywang}
inc_show_bug_table_without_del.tpl

{* 
Testlink Open Source Project - http://testlink.sourceforge.net/ 
$Id: inc_show_bug_table.tpl,v 1.10 2010/07/09 11:41:15 mx-julian Exp $
  
rev :
      20100709 - Julian - show greyed delete icon if delete is not allowed
      20070304 - franciscom - added single quotes on bug_id on deleteBug_onClick() call
                              message improvement
                              added title on delete image. 
*}
{* -------------------------------------------------------------------------------------- *}
{* Manage missing arguments                                                               *}
{if !isset($tableClassName) }
    {assign var="tableClassName"  value="simple"}
{/if}
{if !isset($tableStyles) }
    {assign var="tableStyles"  value="font-size:12px"}
{/if}
{* -------------------------------------------------------------------------------------- *}
<table class="simple">
  <tr>
      <th style="text-align:left">{lang_get s='build'}</th>
      <th style="text-align:left">{lang_get s='caption_bugtable'}</th>
      <th style="text-align:left">&nbsp;</th>
  </tr>
    
    {foreach from=$bugs_map key=bug_id item=bug_elem}
    <tr>
        <td>{$bug_elem.build_name|escape}</td>
        <td>{$bug_elem.link_to_bts}</td>
    </tr>
    {/foreach}
</table>
         
exec.inc.php

/*
* get bugs for the testcase
* added by hengleiwang 2013/3/21
*/
function get_bugs_for_testcase($db,&$bug_interface,$tcversionSet)
{
    $tables['execution_bugs'] = DB_TABLE_PREFIX . 'execution_bugs';
    $tables['executions'] = DB_TABLE_PREFIX . 'executions';
    $tables['builds'] = DB_TABLE_PREFIX . 'builds';
      
    $bug_list=array();
    $sql = "SELECT bug_id,builds.name AS build_name " .
        "FROM {$tables['execution_bugs']}, {$tables['executions']} executions, " .
        " {$tables['builds']} builds ".
        "WHERE executions.tcversion_id ={$tcversionSet} " .
        "AND   execution_id=executions.id " .
        "AND   executions.build_id=builds.id " .
        "ORDER BY builds.name,bug_id";
    $map = $db->get_recordset($sql);
      
    // BUGID 3440 - added is_object() check
    if( !is_null($map) && is_object($bug_interface))
    {   
        foreach($map as $elem)
        {
            $bug_list[$elem['bug_id']]['link_to_bts'] = $bug_interface->buildViewBugLink($elem['bug_id'],GET_BUG_SUMMARY);
            $bug_list[$elem['bug_id']]['build_name'] = $elem['build_name'];
        }
    }
      
    return($bug_list);
}
View Code
原文地址:https://www.cnblogs.com/yunmenzhe/p/4602391.html