From cea85362f5bfaed8edf5ee6f8452af41fa3f1d42 Mon Sep 17 00:00:00 2001 From: daitingting Date: Mon, 28 Aug 2023 06:30:15 +0000 Subject: [PATCH] * Add linkbugs test. --- module/testcase/test/tao/linkbugs.php | 40 +++++++++++++++++++++++++ module/testcase/test/testcase.class.php | 28 +++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100755 module/testcase/test/tao/linkbugs.php diff --git a/module/testcase/test/tao/linkbugs.php b/module/testcase/test/tao/linkbugs.php new file mode 100755 index 0000000000..7ae18fbd99 --- /dev/null +++ b/module/testcase/test/tao/linkbugs.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +id->range('1-3'); + $bugdata->case->range('0'); + + $bugdata->gen(3); +} + +/** + +title=测试 testcaseModel->linkBug(); +timeout=0 +cid=1 + +- 测试修改用例 1 关联 bug 1 + - 第0条的id属性 @1 + - 第0条的case属性 @1 +- 测试修改用例 1 关联 bug 2,3 + - 第0条的id属性 @2 + - 第0条的case属性 @1 + - 第1条的id属性 @3 + - 第1条的case属性 @1 + +*/ + +initData(); + +$caseIDList = array('1'); +$toLinkBugs = array(array('1'), array('2', '3')); + +$testcase = new testcaseTest(); +r($testcase->linkBugsTest($caseIDList[0], $toLinkBugs[0])) && p('0:id,case') && e('1,1'); // 测试修改用例 1 关联 bug 1 +r($testcase->linkBugsTest($caseIDList[0], $toLinkBugs[1])) && p('0:id,case;1:id,case') && e('2,1;3,1'); // 测试修改用例 1 关联 bug 2,3 diff --git a/module/testcase/test/testcase.class.php b/module/testcase/test/testcase.class.php index f0921f303b..4fe76f5ba2 100644 --- a/module/testcase/test/testcase.class.php +++ b/module/testcase/test/testcase.class.php @@ -753,6 +753,34 @@ class testcaseTest return $tester->dao->select('*')->from(TABLE_PROJECTCASE)->where('`case`')->eq($caseID)->fetchAll(); } + /** + * 关联 bug 的测试用例。 + * Link bugs test. + * + * @param int $caseID + * @param array $toLinkBugs + * @access public + * @return array + */ + public function linkBugsTest(int $caseID, array $toLinkBugs): array + { + $oldCase = $this->objectModel->getByID($caseID); + + $case = new stdclass(); + $case->linkBug = $toLinkBugs; + $case->version = $oldCase->version + 1; + $case->story = 0; + $case->storyVersion = 0; + + $this->objectModel->linkBugs($caseID, array_keys($oldCase->toBugs), $case); + + if(dao::isError()) return dao::getError(); + + global $tester; + $bugs = $tester->dao->select('id,`case`')->from(TABLE_BUG)->where('`case`')->eq($caseID)->fetchAll(); + return $bugs; + } + /** * Test get status for different method. *