From 9ebafbc4034aabe7b1d5af8f0328644d17672b2c Mon Sep 17 00:00:00 2001 From: liugang Date: Thu, 12 Oct 2023 16:46:31 +0800 Subject: [PATCH] * testtask: refactor the script to test the getLinkableCasesBySuite method. --- .../test/model/getlinkablecasesbysuite.php | 86 +++++++++++++++---- .../yaml/getlinkablecasesbysuite/case.yaml | 12 +++ .../getlinkablecasesbysuite/suitecase.yaml | 8 ++ 3 files changed, 89 insertions(+), 17 deletions(-) create mode 100644 module/testtask/test/model/yaml/getlinkablecasesbysuite/case.yaml create mode 100644 module/testtask/test/model/yaml/getlinkablecasesbysuite/suitecase.yaml diff --git a/module/testtask/test/model/getlinkablecasesbysuite.php b/module/testtask/test/model/getlinkablecasesbysuite.php index 8410b50d04..9bbf59ff4f 100755 --- a/module/testtask/test/model/getlinkablecasesbysuite.php +++ b/module/testtask/test/model/getlinkablecasesbysuite.php @@ -4,31 +4,83 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/testtask.class.php'; su('admin'); +zdTable('case')->config('case')->gen(20); +zdTable('suitecase')->config('suitecase')->gen(20); + /** title=测试 testtaskModel->getLinkableCasesBySuite(); cid=1 pid=1 -根据测试套件1获取测试单1可关联的用例数量 >> 1 -根据测试套件2获取测试单2可关联的用例数量 >> 1 -根据测试套件1获取测试单1可关联的用例详情 >> 2,这个是测试用例2,normal,performance -根据测试套件2获取测试单2可关联的用例详情 >> 6,这个是测试用例6,normal,interface - */ -global $tester; -$tester->loadModel('testtask'); -$tester->app->loadClass('pager', $static = true); +global $tester, $app; -$task1 = $tester->testtask->getById(1); -$task2 = $tester->testtask->getById(2); -$pager = new pager(0, 10, 1); +$app->setModuleName('testtask'); +$app->setMethodName('linkCase'); +$app->loadClass('pager', true); +$pager = new pager(0, 5, 1); -$cases1 = $tester->testtask->getLinkableCasesBySuite(1, $task1, '1 = 1', 1, '', $pager); -$cases2 = $tester->testtask->getLinkableCasesBySuite(2, $task2, '1 = 1', 3, '', $pager); +$testtask = $tester->loadModel('testtask'); -r(count($cases1)) && p() && e('1'); // 根据测试套件1获取测试单1可关联的用例数量 -r(count($cases2)) && p() && e('1'); // 根据测试套件2获取测试单2可关联的用例数量 -r($cases1) && p('0:id,title,status,type') && e('2,这个是测试用例2,normal,performance'); // 根据测试套件1获取测试单1可关联的用例详情 -r($cases2) && p('0:id,title,status,type') && e('6,这个是测试用例6,normal,interface'); // 根据测试套件2获取测试单2可关联的用例详情 \ No newline at end of file +$task1 = (object)array('branch' => 0); // 测试单 1 版本 2 分支 0 有用例。 +$task2 = (object)array('branch' => 1); // 测试单 1 版本 2 分支 1 有用例。 + +r($testtask->getLinkableCasesBySuite(0, $task1, 1)) && p() && e(0); // 产品 0 测试单 1 套件 1 可关联的用例数为 0。 +r($testtask->getLinkableCasesBySuite(2, $task1, 1)) && p() && e(0); // 产品 2 测试单 1 套件 1 可关联的用例数为 0。 +r($testtask->getLinkableCasesBySuite(1, $task1, 0)) && p() && e(0); // 产品 1 测试单 1 套件 0 可关联的用例数为 0。 +r($testtask->getLinkableCasesBySuite(1, $task1, 2)) && p() && e(0); // 产品 1 测试单 2 套件 2 可关联的用例数为 0。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task1, 1); +r(count($cases)) && p() && e(6); // 产品 1 测试单 1 套件 1 可关联的用例数为 6。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('8,这个是测试用例8,4,feature,no,investigate'); // 查看可关联的用例 8 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('7,这个是测试用例7,3,other,no,blocked'); // 查看可关联的用例 7 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('6,这个是测试用例6,2,interface,no,normal'); // 查看可关联的用例 6 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1); +r(count($cases)) && p() && e(12); // 产品 1 测试单 2 套件 1 可关联的用例数为 12。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('19,这个是测试用例19,3,security,no,blocked'); // 查看可关联的用例 19 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id > 19'); +r(count($cases)) && p() && e(0); // 产品 1 测试单 2 套件 1 查询 id > 19 后可关联的用例数为 0。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id < 19'); +r(count($cases)) && p() && e(11); // 产品 1 测试单 2 套件 1 查询 id < 19 后可关联的用例数为 11。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('14,这个是测试用例14,2,other,no,normal'); // 查看可关联的用例 14 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id < 19', array(2)); +r(count($cases)) && p() && e(10); // 产品 1 测试单 2 套件 1 查询 id < 19 并排除用例 2 后可关联的用例数为 10。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('14,这个是测试用例14,2,other,no,normal'); // 查看可关联的用例 14 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id < 19', array(), $pager); +r(count($cases)) && p() && e(5); // 产品 1 测试单 2 套件 1 查询 id < 19 并限制每页查询 5 条后可关联的用例数为 5。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('14,这个是测试用例14,2,other,no,normal'); // 查看可关联的用例 14 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id < 19', array(2), $pager); +r(count($cases)) && p() && e(5); // 产品 1 测试单 2 套件 1 查询 id < 19、排除用例 2 并限制每页查询 5 条后可关联的用例数为 5。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('14,这个是测试用例14,2,other,no,normal'); // 查看可关联的用例 14 的详细信息。 + +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1, 'id < 19', array(2,3,4,5,6,7,8,9,10,11,12), $pager); +r(count($cases)) && p() && e(3); // 产品 1 测试单 2 套件 1 查询 id < 19、排除用例 2-12 并限制每页查询 5 条后可关联的用例数为 3。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('14,这个是测试用例14,2,other,no,normal'); // 查看可关联的用例 14 的详细信息。 + +$testtask->lang->navGroup->testtask = 'project'; +$testtask->session->set('project', 2); +$cases = $testtask->getLinkableCasesBySuite(1, $task2, 1); +r(count($cases)) && p() && e(6); // 产品 1 测试单 2 套件 1 在项目 2 中可关联的用例数为 6。 +r($cases) && p('0:id,title,pri,type,auto,status') && e('19,这个是测试用例19,3,security,no,blocked'); // 查看可关联的用例 19 的详细信息。 +r($cases) && p('1:id,title,pri,type,auto,status') && e('18,这个是测试用例18,2,install,no,normal'); // 查看可关联的用例 18 的详细信息。 +r($cases) && p('2:id,title,pri,type,auto,status') && e('16,这个是测试用例16,4,performance,no,investigate'); // 查看可关联的用例 16 的详细信息。 diff --git a/module/testtask/test/model/yaml/getlinkablecasesbysuite/case.yaml b/module/testtask/test/model/yaml/getlinkablecasesbysuite/case.yaml new file mode 100644 index 0000000000..a4ad9f9ae6 --- /dev/null +++ b/module/testtask/test/model/yaml/getlinkablecasesbysuite/case.yaml @@ -0,0 +1,12 @@ +title: table zt_case +author: Gang Liu +version: "1.0" +fields: + - field: product + range: 1 + - field: project + range: 1{5},2{5} + - field: branch + range: 0{10},1{10} + - field: deleted + range: 0{4},1 diff --git a/module/testtask/test/model/yaml/getlinkablecasesbysuite/suitecase.yaml b/module/testtask/test/model/yaml/getlinkablecasesbysuite/suitecase.yaml new file mode 100644 index 0000000000..6bdafb2dc7 --- /dev/null +++ b/module/testtask/test/model/yaml/getlinkablecasesbysuite/suitecase.yaml @@ -0,0 +1,8 @@ +title: table zt_suitecase +author: Gang Liu +version: "1.0" +fields: + - field: suite + range: 1 + - field: product + range: 1