diff --git a/module/testcase/test/lib/testcasezen.unittest.class.php b/module/testcase/test/lib/testcasezen.unittest.class.php index bf4f246ccb..06672b6d4a 100755 --- a/module/testcase/test/lib/testcasezen.unittest.class.php +++ b/module/testcase/test/lib/testcasezen.unittest.class.php @@ -110,4 +110,40 @@ class testcaseZenTest return $result; } + + /** + * Test assignForImportFromLib method. + * + * @param int $productID + * @param string $branch + * @param int $libID + * @param string $orderBy + * @param int $queryID + * @param array $libraries + * @param int $projectID + * @param array $cases + * @access public + * @return int + */ + public function assignForImportFromLibTest(int $productID, string $branch, int $libID, string $orderBy, int $queryID, array $libraries, int $projectID, array $cases): int + { + global $tester; + + // 初始化必要的对象 + if(!isset($tester->view)) $tester->view = new stdClass(); + if(!isset($tester->config)) $tester->config = new stdClass(); + if(!isset($tester->config->testcase)) $tester->config->testcase = new stdClass(); + if(!isset($tester->config->testcase->search)) $tester->config->testcase->search = array(); + + try { + // 调用assignForImportFromLib方法 + callZenMethod('testcase', 'assignForImportFromLib', [$productID, $branch, $libID, $orderBy, $queryID, $libraries, $projectID, $cases]); + + // 返回0表示成功执行 + return 0; + } catch (Exception $e) { + // 返回1表示执行失败 + return 1; + } + } } diff --git a/module/testcase/test/zen/assignforimportfromlib.php b/module/testcase/test/zen/assignforimportfromlib.php new file mode 100755 index 0000000000..9ddf205b4d --- /dev/null +++ b/module/testcase/test/zen/assignforimportfromlib.php @@ -0,0 +1,48 @@ +#!/usr/bin/env php +id->range('1-10'); +$productTable->name->range('产品1,产品2,产品3,产品4,产品5'); +$productTable->type->range('normal{3},branch{2}'); +$productTable->status->range('normal'); +$productTable->gen(5); + +$testsuiteTable = zenData('testsuite'); +$testsuiteTable->id->range('1-5'); +$testsuiteTable->product->range('1-3'); +$testsuiteTable->name->range('用例库1,用例库2,用例库3,用例库4,用例库5'); +$testsuiteTable->type->range('library'); +$testsuiteTable->gen(5); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$testcaseZenTest = new testcaseZenTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($testcaseZenTest->assignForImportFromLibTest(1, '', 1, 'id_desc', 0, array(1 => '用例库1'), 0, array())) && p() && e('0'); // 步骤1:检查方法是否执行成功 +r($testcaseZenTest->assignForImportFromLibTest(2, '', 2, 'id_asc', 1, array(2 => '用例库2'), 0, array())) && p() && e('0'); // 步骤2:不同参数执行 +r($testcaseZenTest->assignForImportFromLibTest(3, '', 3, 'title_desc', 2, array(3 => '用例库3'), 0, array())) && p() && e('0'); // 步骤3:更多参数变化 +r($testcaseZenTest->assignForImportFromLibTest(1, '0', 1, 'name_asc', 0, array(1 => '用例库1'), 1, array())) && p() && e('0'); // 步骤4:带项目ID +r($testcaseZenTest->assignForImportFromLibTest(1, 'all', 1, 'id_desc', 3, array(1 => '用例库1'), 0, array('case1'))) && p() && e('0'); // 步骤5:带用例数据 \ No newline at end of file