Пример #1
0
/**
 * getReqCoverage
 *
 */
function getReqCoverage(&$dbHandler, $reqs, &$execMap)
{
    $tree_mgr = new tree($dbHandler);
    $coverageAlgorithm = config_get('req_cfg')->coverageStatusAlgorithm;
    $resultsCfg = config_get('results');
    $status2check = array_keys($resultsCfg['status_label_for_exec_ui']);
    // $coverage['byStatus']=null;
    $coverage['withTestCase'] = null;
    $coverage['withoutTestCase'] = null;
    $coverage['byStatus'] = $resultsCfg['status_label_for_exec_ui'];
    $status_counters = array();
    foreach ($coverage['byStatus'] as $status_code => $value) {
        $coverage['byStatus'][$status_code] = array();
        $status_counters[$resultsCfg['status_code'][$status_code]] = 0;
    }
    $reqs_qty = count($reqs);
    if ($reqs_qty > 0) {
        foreach ($reqs as $requirement_id => $req_tcase_set) {
            $first_key = key($req_tcase_set);
            $item_qty = count($req_tcase_set);
            $req = array("id" => $requirement_id, "title" => $req_tcase_set[$first_key]['req_title'], "req_doc_id" => $req_tcase_set[$first_key]["req_doc_id"]);
            foreach ($status_counters as $key => $value) {
                $status_counters[$key] = 0;
            }
            if ($req_tcase_set[$first_key]['testcase_id'] > 0) {
                $coverage['withTestCase'][$requirement_id] = 1;
            } else {
                $coverage['withoutTestCase'][$requirement_id] = $req;
            }
            for ($idx = 0; $idx < $item_qty; $idx++) {
                $item_info = $req_tcase_set[$idx];
                if ($idx == 0) {
                    $req['title'] = $item_info['req_title'];
                }
                // BUGID 1063
                if ($item_info['testcase_id'] > 0) {
                    $exec_status = $resultsCfg['status_code']['not_run'];
                    $tcase_path = '';
                    if (isset($execMap[$item_info['testcase_id']]) && sizeof($execMap[$item_info['testcase_id']])) {
                        $execInfo = end($execMap[$item_info['testcase_id']]);
                        $tcase_path = $execInfo['tcase_path'];
                        if (isset($execInfo['status']) && trim($execInfo['status']) != '') {
                            $exec_status = $execInfo['status'];
                        }
                    } else {
                        $path_info = $tree_mgr->get_full_path_verbose($item_info['testcase_id']);
                        unset($path_info[$item_info['testcase_id']][0]);
                        // remove test project name
                        $path_info[$item_info['testcase_id']][] = '';
                        $tcase_path = implode(' / ', $path_info[$item_info['testcase_id']]);
                    }
                    $status_counters[$exec_status]++;
                    $req['tcList'][] = array("tcID" => $item_info['testcase_id'], "title" => $item_info['testcase_name'], "tcaseExternalID" => $item_info['testcase_external_id'], "version" => $item_info['testcase_version'], "tcase_path" => $tcase_path, "status" => $exec_status, "status_label" => $resultsCfg['status_label'][$resultsCfg['code_status'][$exec_status]]);
                }
            }
            // for($idx = 0; $idx < $item_qty; $idx++)
            // We analyse counters
            $go_away = 0;
            foreach ($coverageAlgorithm['checkOrder'] as $checkKey) {
                foreach ($coverageAlgorithm['checkType'][$checkKey] as $tcase_status) {
                    if ($checkKey == 'atLeastOne') {
                        if ($status_counters[$resultsCfg['status_code'][$tcase_status]] > 0) {
                            $coverage['byStatus'][$tcase_status][] = $req;
                            $go_away = 1;
                            break;
                        }
                    }
                    if ($checkKey == 'all') {
                        if ($status_counters[$resultsCfg['status_code'][$tcase_status]] == $item_qty) {
                            $coverage['byStatus'][$tcase_status][] = $req;
                            $go_away = 1;
                            break;
                        } elseif ($status_counters[$resultsCfg['status_code'][$tcase_status]] > 0) {
                            $coverage['byStatus'][$tcase_status][] = $req;
                            $go_away = 1;
                            break;
                        } elseif (isset($coverageAlgorithm['checkFail']) && isset($coverageAlgorithm['checkFail'][$checkKey]) && isset($req['tcList'])) {
                            // BUGID 2171
                            // ($coverageAlgorithm['checkFail'][$checkKey]==$tcase_status)
                            // If particular requirement has assigned more than one test cases, and:
                            // - at least one of assigned test cases was not yet executed
                            // - the rest of assigned test cases was executed and passed
                            // then on the "Requirements based report" this particular requirement
                            // is not shown at all (in any section).
                            $coverage['byStatus'][$coverageAlgorithm['checkFail'][$checkKey]][] = $req;
                            $go_away = 1;
                            break;
                        }
                    }
                }
                if ($go_away) {
                    break;
                }
            }
        }
        // foreach($reqs as $requirement_id => $req_tcase_set)
    }
    return $coverage;
}
Пример #2
0
 $metricsMgr = new tlTestPlanMetrics($db);
 $metrics = $metricsMgr->getNotRunWoTesterAssigned($args->tplan_id, null, null, array('output' => 'array', 'ignoreBuild' => true));
 if (($gui->row_qty = count($metrics)) > 0) {
     $msg_key = '';
     $links = featureLinks($gui->labels, $smarty->getImages());
     $gui->pageTitle .= " - " . $gui->labels['match_count'] . ":" . $gui->row_qty;
     if ($args->show_platforms) {
         $platformCache = $tplan_mgr->getPlatforms($args->tplan_id, array('outputFormat' => 'mapAccessByID'));
     }
     // Collect all tcases id and get all test suite paths
     $targetSet = array();
     foreach ($metrics as &$item) {
         $targetSet[] = $item['tcase_id'];
     }
     $tree_mgr = new tree($db);
     $path_info = $tree_mgr->get_full_path_verbose($targetSet);
     unset($tree_mgr);
     unset($targetSet);
     $data = array();
     foreach ($metrics as &$item) {
         $row = array();
         $row[] = join(" / ", $path_info[$item['tcase_id']]);
         $row[] = "<!-- " . sprintf("%010d", $item['external_id']) . " -->" . sprintf($links['full'], $item['tcase_id'], $item['tcase_id']) . $item['full_external_id'] . ': ' . $item['name'];
         if ($args->show_platforms) {
             $row[] = $platformCache[$item['platform_id']]['name'];
         }
         if ($gui->options->testPriorityEnabled) {
             // THIS HAS TO BE REFACTORED, because we can no do lot of calls
             // because performance will be BAD
             $row[] = $tplan_mgr->urgencyImportanceToPriorityLevel($item['urg_imp']);
         }
 $filters = array('assigned_to' => TL_USER_NOBODY, 'exec_status' => $cfg['status_code']['not_run']);
 $options = array('output' => 'array', 'details' => 'summary');
 $testCaseSet = $tplan_mgr->get_linked_tcversions($args->tplan_id, $filters, $options);
 if (($gui->row_qty = count($testCaseSet)) > 0) {
     $msg_key = '';
     $gui->pageTitle .= " - " . lang_get('match_count') . ":" . $gui->row_qty;
     $tproject_mgr = new testproject($db);
     $prefix = $tproject_mgr->getTestCasePrefix($args->tproject_id);
     unset($tproject_mgr);
     // Collect all tc_id:s and get all test suite paths
     $tcase_set = array();
     foreach ($testCaseSet as $item) {
         $tcase_set[] = $item['tc_id'];
     }
     $tree_mgr = new tree($db);
     $path_info = $tree_mgr->get_full_path_verbose($tcase_set);
     unset($tree_mgr);
     $data = array();
     foreach ($testCaseSet as $item) {
         $verbosePath = join(" / ", $path_info[$item['tc_id']]);
         $name = buildExternalIdString($prefix, $item['external_id'] . ': ' . $item['name']);
         // create linked icons
         $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$item['tc_id']});\">" . "<img title=\"{$labels['execution_history']}\" src=\"{$history_img}\" /></a> ";
         $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$item['tc_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> ";
         $link = "<!-- " . sprintf("%010d", $item['external_id']) . " -->" . $exec_history_link . $edit_link . $name;
         $row = array($verbosePath, $link);
         if ($args->show_platforms) {
             $row[] = $item['platform_name'];
         }
         if ($_SESSION['testprojectOptions']->testPriorityEnabled) {
             $row[] = $tplan_mgr->urgencyImportanceToPriorityLevel($item['priority']);
Пример #4
0
 * @author Francisco Mancardi
 *
 * 
 *
 * rev :
*/
require_once '../../../config.inc.php';
require_once 'common.php';
require_once 'tree.class.php';
testlinkInitPage($db);
echo "<pre> tree - constructor - tree(&\$db)";
echo "</pre>";
$tree_mgr = new tree($db);
new dBug($tree_mgr);
$args = array(3312, 3314, 3316);
$dummy = $tree_mgr->get_full_path_verbose($args, array('error_behaivour' => 'soft'));
new dBug($dummy);
$args = array(3312, 3314, 33333316);
$dummy = $tree_mgr->get_full_path_verbose($args, array('error_behaivour' => 'soft'));
new dBug($dummy);
$args = array(3312, 3314, 33333316);
$dummy = $tree_mgr->get_full_path_verbose($args);
new dBug($dummy);
die;
echo "<pre> tree - get_available_node_types()";
echo "</pre>";
$available_node_types = $tree_mgr->get_available_node_types();
new dBug($available_node_types);
echo "<pre> tree - get_node_hierarchy_info(\$node_id)";
echo "</pre>";
$node_id = 1;