From 8405668516aeb0ab43c6f81f6e1a50c4680f959d Mon Sep 17 00:00:00 2001 From: atisne Date: Tue, 9 Feb 2021 16:44:40 +0100 Subject: [PATCH 1/2] fix: #0009038: Make the 'Requirements based report' compliant with new link implementation between requirements and test cases Due to 1.9.18 changes concerning links between requirements and test cases, we change the report to work at version level. --- lib/results/resultsReqs.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/results/resultsReqs.php b/lib/results/resultsReqs.php index 0186772e0d..b0a328cad0 100644 --- a/lib/results/resultsReqs.php +++ b/lib/results/resultsReqs.php @@ -302,7 +302,7 @@ '[' . $pname . $status_l10n . ']'; - $tc_name = $prefix . $ltcase['tc_external_id'] . $title_sep . $ltcase['name']; + $tc_name = $prefix . $ltcase['tc_external_id'] . $title_sep . $ltcase['name'] . " v" . $ltcase['version']; $exec_history_link = "" . "get_coverage($id,$coverageContext,array('accessKey' => 'tcase_id')); + $req['linked_testcases'] = (array)$reqMgr->getActiveForReqVersion($req['version_id']); - // Now loop to mark test cases ASSIGNED to requirements as LINKED OR NOT to Test plan under analisys. + // Now loop to mark test cases ASSIGNED to requirements as LINKED OR NOT to Test plan under analysis. + // and exclude obsolete TC foreach($req['linked_testcases'] as $itemID => $dummy) { - $req['linked_testcases'][$itemID]['in_testplan'] = isset($itemsInTestPlan[$itemID]); + if ($dummy['is_obsolete'] == "0") { + $req['linked_testcases'][$itemID]['in_testplan'] = isset($itemsInTestPlan[$itemID]); + } else { + unset($req['linked_testcases'][$itemID]); + } } $rspec[$req['srs_id']]['requirements'][$id] = $req; From 187b73ade96c78557faa3bb7af9abeed961c9ce4 Mon Sep 17 00:00:00 2001 From: atisne Date: Tue, 23 Mar 2021 14:22:26 +0100 Subject: [PATCH 2/2] fix: #0009038: Exclude of the report requirements with no linked (non obsolete) Test Case --- lib/results/resultsReqs.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/results/resultsReqs.php b/lib/results/resultsReqs.php index b0a328cad0..8128f71bb7 100644 --- a/lib/results/resultsReqs.php +++ b/lib/results/resultsReqs.php @@ -753,7 +753,6 @@ function buildReqSpecMap($reqSet,&$reqMgr,&$reqSpecMgr,&$tplanMgr,$reqStatusFilt if( in_array($req['status'], $reqStatusFilter, true) || in_array("0", $reqStatusFilter, true) ) { - $total++; // some sort of Caching if (!isset($rspec[$req['srs_id']])) @@ -764,22 +763,23 @@ function buildReqSpecMap($reqSet,&$reqMgr,&$reqSpecMgr,&$tplanMgr,$reqStatusFilt $req['linked_testcases'] = (array)$reqMgr->getActiveForReqVersion($req['version_id']); - // Now loop to mark test cases ASSIGNED to requirements as LINKED OR NOT to Test plan under analysis. - // and exclude obsolete TC + // Exclude obsolete TC or TC not linked to test plan under analysis foreach($req['linked_testcases'] as $itemID => $dummy) { - if ($dummy['is_obsolete'] == "0") { - $req['linked_testcases'][$itemID]['in_testplan'] = isset($itemsInTestPlan[$itemID]); - } else { + if ($dummy['is_obsolete'] == "1" || ! isset($itemsInTestPlan[$dummy['id']]) ) { unset($req['linked_testcases'][$itemID]); } } - $rspec[$req['srs_id']]['requirements'][$id] = $req; + // if there is linked (active) test case + if (count($req['linked_testcases']) > 0) { + $total++; + $rspec[$req['srs_id']]['requirements'][$id] = $req; - foreach ($req['linked_testcases'] as $tc) - { - $tc_ids[] = $tc['id']; + foreach ($req['linked_testcases'] as $tc) + { + $tc_ids[] = $tc['id']; + } } } }