* Finish task #6492.

This commit is contained in:
Yagami
2019-11-26 14:31:22 +08:00
parent d98082f597
commit 9358057416
2 changed files with 75 additions and 1 deletions
+9 -1
View File
@@ -238,7 +238,6 @@ class testreport extends control
}
$cases = $this->testreport->getTaskCases($tasks, $begin, $end);
$bugInfo = $this->testreport->getBugInfo($tasks, $productIdList, $begin, $end, $builds);
$this->view->begin = $begin;
$this->view->end = $end;
$this->view->members = $this->dao->select('DISTINCT lastRunner')->from(TABLE_TESTRUN)->where('task')->in(array_keys($tasks))->fetchPairs('lastRunner', 'lastRunner');
@@ -257,6 +256,9 @@ class testreport extends control
$this->view->cases = $cases;
$this->view->caseSummary = $this->testreport->getResultSummary($tasks, $cases, $begin, $end);
$this->view->datas['testTaskPerRunResult'] = $this->testreport->getPerCaseResult4Report($tasks, $cases, $begin, $end);
$this->view->datas['testTaskPerRunner'] = $this->testreport->getPerCaseRunner4Report($tasks, $cases, $begin, $end);
$this->view->legacyBugs = $bugInfo['legacyBugs'];
unset($bugInfo['legacyBugs']);
$this->view->bugInfo = $bugInfo;
@@ -363,6 +365,9 @@ class testreport extends control
$this->view->cases = $cases;
$this->view->caseSummary = $this->testreport->getResultSummary($tasks, $cases, $report->begin, $report->end);
$this->view->datas['testTaskPerRunResult'] = $this->testreport->getPerCaseResult4Report($tasks, $cases, $report->begin, $report->end);
$this->view->datas['testTaskPerRunner'] = $this->testreport->getPerCaseRunner4Report($tasks, $cases, $report->begin, $report->end);
$this->view->legacyBugs = $bugInfo['legacyBugs'];
unset($bugInfo['legacyBugs']);
@@ -442,6 +447,9 @@ class testreport extends control
$this->view->storySummary = $this->product->summary($stories);
$this->view->caseSummary = $this->testreport->getResultSummary($tasks, $cases, $report->begin, $report->end);
$this->view->datas['testTaskPerRunResult'] = $this->testreport->getPerCaseResult4Report($tasks, $cases, $report->begin, $report->end);
$this->view->datas['testTaskPerRunner'] = $this->testreport->getPerCaseRunner4Report($tasks, $cases, $report->begin, $report->end);
$this->view->legacyBugs = $bugInfo['legacyBugs'];
unset($bugInfo['legacyBugs']);
$this->view->bugInfo = $bugInfo;
+66
View File
@@ -361,6 +361,8 @@ class testreportModel extends model
*
* @param array $tasks
* @param array $cases
* @param string $begin
* @param string $end
* @access public
* @return string
*/
@@ -370,6 +372,8 @@ class testreportModel extends model
->leftJoin(TABLE_TESTRUN)->alias('t2')->on('t1.run=t2.id')
->where('t2.task')->in(array_keys($tasks))
->andWhere('t1.`case`')->in(array_keys($cases))
->andWhere('t1.date')->ge($begin)
->andWhere('t1.date')->le($end . " 23:59:59")
->orderBy('date')
->fetchAll('id');
@@ -383,6 +387,68 @@ class testreportModel extends model
return sprintf($this->lang->testreport->caseSummary, count($cases), count($runCasesNum), count($results), count($failResults));
}
/**
* Get per run result for testreport.
*
* @param array $tasks
* @param array $cases
* @param string $begin
* @param string $end
* @access public
* @return string
*/
public function getPerCaseResult4Report($tasks, $cases, $begin, $end)
{
$datas = $this->dao->select("t1.caseResult AS name, COUNT('t1.*') AS value")->from(TABLE_TESTRESULT)->alias('t1')
->leftJoin(TABLE_TESTRUN)->alias('t2')
->on('t1.run= t2.id')
->where('t2.task')->in(array_keys($tasks))
->andWhere('t1.`case`')->in(array_keys($cases))
->andWhere('t1.date')->ge($begin)
->andWhere('t1.date')->le($end . " 23:59:59")
->groupBy('name')
->orderBy('value DESC')
->fetchAll('name');
if(!$datas) return array();
$this->app->loadLang('testcase');
foreach($datas as $result => $data) $data->name = isset($this->lang->testcase->resultList[$result])? $this->lang->testcase->resultList[$result] : $this->lang->testtask->unexecuted;
return $datas;
}
/**
* Get per case runner for testreport.
*
* @param array $tasks
* @param array $cases
* @param string $begin
* @param string $end
* @access public
* @return string
*/
public function getPerCaseRunner4Report($tasks, $cases, $begin, $end)
{
$datas = $this->dao->select("t1.lastRunner AS name, COUNT('t1.*') AS value")->from(TABLE_TESTRESULT)->alias('t1')
->leftJoin(TABLE_TESTRUN)->alias('t2')
->on('t1.run= t2.id')
->where('t2.task')->in(array_keys($tasks))
->andWhere('t1.`case`')->in(array_keys($cases))
->andWhere('t1.date')->ge($begin)
->andWhere('t1.date')->le($end . " 23:59:59")
->groupBy('name')
->orderBy('value DESC')
->fetchAll('name');
if(!$datas) return array();
$users = $this->loadModel('user')->getPairs('noclosed|noletter');
foreach($datas as $result => $data) $data->name = $result ? zget($users, $result, $result) : $this->lang->testtask->unexecuted;
return $datas;
}
/**
* Get bugs for test
*