diff --git a/module/score/test/model/computebugscore.php b/module/score/test/model/computebugscore.php new file mode 100755 index 0000000000..e11d4d43f6 --- /dev/null +++ b/module/score/test/model/computebugscore.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +computeBugScore(); +cid=1 + +- 计算caseID=0时,用例建bug的积分第0条的score属性 @1 +- 计算caseID=1时,用例建bug的积分第0条的score属性 @1 +- 计算caseID不存在时,用例建bug的积分第0条的score属性 @1 +- 计算caseID=0时,保存bug步骤模版的积分第0条的score属性 @20 +- 计算caseID=1时,保存bug步骤模版的积分第0条的score属性 @20 +- 计算caseID不存在时,保存bug步骤模版的积分第0条的score属性 @20 +- 计算caseID=0时,确认bug的积分第0条的score属性 @4 +- 计算caseID=1时,确认bug的积分第0条的score属性 @4 +- 计算caseID不存在时,确认bug的积分第0条的score属性 @4 +- 计算caseID=0时,解决bug的积分第0条的score属性 @4 +- 计算caseID=1时,解决bug的积分第0条的score属性 @4 +- 计算caseID不存在时,解决bug的积分第0条的score属性 @4 +- 计算caseID=0时,创建bug的积分第0条的score属性 @1 +- 计算caseID=1时,创建bug的积分第0条的score属性 @1 +- 计算caseID不存在时,创建bug的积分第0条的score属性 @1 + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/score.class.php'; + +zdTable('user')->gen(5); +zdTable('case')->gen(1); +zdTable('bug')->gen(1); + +$caseIds = array(0, 1, 2); +$methods = array('createFormCase', 'saveTplModal', 'confirm', 'resolve', 'create'); + +$scoreTester = new scoreTest(); +r($scoreTester->computeBugScoreTest($caseIds[0], $methods[0])) && p('0:score') && e('1'); // 计算caseID=0时,用例建bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[1], $methods[0])) && p('0:score') && e('1'); // 计算caseID=1时,用例建bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[2], $methods[0])) && p('0:score') && e('1'); // 计算caseID不存在时,用例建bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[0], $methods[1])) && p('0:score') && e('20'); // 计算caseID=0时,保存bug步骤模版的积分 +r($scoreTester->computeBugScoreTest($caseIds[1], $methods[1])) && p('0:score') && e('20'); // 计算caseID=1时,保存bug步骤模版的积分 +r($scoreTester->computeBugScoreTest($caseIds[2], $methods[1])) && p('0:score') && e('20'); // 计算caseID不存在时,保存bug步骤模版的积分 +r($scoreTester->computeBugScoreTest($caseIds[0], $methods[2])) && p('0:score') && e('4'); // 计算caseID=0时,确认bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[1], $methods[2])) && p('0:score') && e('4'); // 计算caseID=1时,确认bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[2], $methods[2])) && p('0:score') && e('4'); // 计算caseID不存在时,确认bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[0], $methods[3])) && p('0:score') && e('4'); // 计算caseID=0时,解决bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[1], $methods[3])) && p('0:score') && e('4'); // 计算caseID=1时,解决bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[2], $methods[3])) && p('0:score') && e('4'); // 计算caseID不存在时,解决bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[0], $methods[4])) && p('0:score') && e('1'); // 计算caseID=0时,创建bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[1], $methods[4])) && p('0:score') && e('1'); // 计算caseID=1时,创建bug的积分 +r($scoreTester->computeBugScoreTest($caseIds[2], $methods[4])) && p('0:score') && e('1'); // 计算caseID不存在时,创建bug的积分 diff --git a/module/score/test/score.class.php b/module/score/test/score.class.php index 1c0a6785b3..cccc4eae9e 100644 --- a/module/score/test/score.class.php +++ b/module/score/test/score.class.php @@ -117,4 +117,37 @@ class scoreTest return $this->objectModel->computeTaskScore('task', $method, $taskID, $rule, $extended); } + + /** + * 计算Bug积分。 + * Compute bug score. + * + * @param int $caseID + * @param string $method + * @access public + * @return array + */ + public function computeBugScoreTest(int $param, string $method): array + { + $rule = isset($this->objectModel->config->score->rule->bug->{$method}) ? $this->objectModel->config->score->rule->bug->{$method} : array(); + $extended = isset($this->objectModel->config->score->ruleExtended['bug'][$method]) ? $this->objectModel->config->score->ruleExtended['bug'][$method] : array(); + + if(in_array($method, array('confirm', 'resolve'))) + { + $object = $this->objectModel->dao->select('*')->from(TABLE_BUG)->where('id')->eq($param)->fetch(); + if(!$object) + { + $object = new stdclass(); + $object->id = $param; + $object->openedBy = 'admin'; + $object->severity = 1; + } + } + else + { + $object = $param; + } + + return $this->objectModel->computeBugScore('bug', $method, $object, $rule, '', 'admin', $extended); + } }