diff --git a/module/testtask/test/lib/testtaskzen.unittest.class.php b/module/testtask/test/lib/testtaskzen.unittest.class.php index 5689661706..c51ce4bf45 100644 --- a/module/testtask/test/lib/testtaskzen.unittest.class.php +++ b/module/testtask/test/lib/testtaskzen.unittest.class.php @@ -268,4 +268,40 @@ class testtaskZenTest return array('error' => $e->getMessage()); } } + + /** + * Test buildTaskForActivate method. + * + * @param int $taskID + * @access public + * @return object + */ + public function buildTaskForActivateTest($taskID = 1) + { + // 根据不同的taskID使用不同的测试数据 + $testData = array( + 1 => array('status' => 'doing', 'comment' => '重新激活测试单', 'assignedTo' => 'admin', 'uid' => 'uid123'), + 2 => array('status' => 'doing', 'comment' => '', 'assignedTo' => 'user1', 'uid' => 'uid456'), + 3 => array('status' => 'doing', 'comment' => '测试单已激活,可以继续执行测试', 'assignedTo' => 'qa', 'uid' => ''), + 4 => array('status' => 'doing', 'comment' => '

带HTML标签的激活注释

', 'assignedTo' => 'tester', 'uid' => 'uid789'), + 0 => array('status' => 'doing', 'comment' => '无效ID测试', 'assignedTo' => 'admin', 'uid' => 'invalid'), + 999 => array('status' => 'doing', 'comment' => '不存在的测试单', 'assignedTo' => 'user999', 'uid' => 'test999') + ); + + $data = isset($testData[$taskID]) ? $testData[$taskID] : $testData[1]; + + // 模拟表单数据 + $_POST = $data; + + $method = $this->testtaskZenTest->getMethod('buildTaskForActivate'); + $method->setAccessible(true); + + try { + $result = $method->invokeArgs($this->testtaskZenTest->newInstance(), array((int)$taskID)); + if(dao::isError()) return dao::getError(); + return $result; + } catch(Exception $e) { + return array('error' => $e->getMessage()); + } + } } \ No newline at end of file diff --git a/module/testtask/test/zen/buildtaskforactivate.php b/module/testtask/test/zen/buildtaskforactivate.php new file mode 100755 index 0000000000..277064d380 --- /dev/null +++ b/module/testtask/test/zen/buildtaskforactivate.php @@ -0,0 +1,58 @@ +#!/usr/bin/env php +id->range('1-10'); +$testtask->name->range('测试单{1-10}'); +$testtask->product->range('1-3'); +$testtask->project->range('1-3'); +$testtask->build->range('1-5'); +$testtask->owner->range('admin,user1,user2'); +$testtask->status->range('blocked{5},done{5}'); +$testtask->gen(10); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$testtaskTest = new testtaskZenTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($testtaskTest->buildTaskForActivateTest(1)) && p('id,status') && e('1,doing'); // 步骤1:正常情况 +r($testtaskTest->buildTaskForActivateTest(2)) && p('id,status') && e('2,doing'); // 步骤2:空注释情况 +r($testtaskTest->buildTaskForActivateTest(3)) && p('id,status') && e('3,doing'); // 步骤3:长注释情况 +r($testtaskTest->buildTaskForActivateTest(4)) && p('id,status') && e('4,doing'); // 步骤4:带HTML标签 +r($testtaskTest->buildTaskForActivateTest(0)) && p('id,status') && e('0,doing'); // 步骤5:无效ID +r($testtaskTest->buildTaskForActivateTest(999)) && p('id,status') && e('999,doing'); // 步骤6:不存在的ID \ No newline at end of file