+ [misc] Add unit tests for testtaskModel::importRunOfUnitResult() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -847,4 +847,41 @@ class testtaskTest
|
||||
$tester->config->global->flow = $oldConfig;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test importRunOfUnitResult method.
|
||||
*
|
||||
* @param object $case
|
||||
* @param int $caseID
|
||||
* @param object $testRun
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function importRunOfUnitResultTest(object $case, int $caseID, object $testRun)
|
||||
{
|
||||
// 确保case对象包含必需的属性
|
||||
if(!isset($case->version)) $case->version = 1;
|
||||
if(!isset($case->lastRunner)) $case->lastRunner = '';
|
||||
if(!isset($case->lastRunDate)) $case->lastRunDate = '';
|
||||
if(!isset($case->lastRunResult)) $case->lastRunResult = '';
|
||||
|
||||
$reflection = new ReflectionClass($this->objectModel);
|
||||
$method = $reflection->getMethod('importRunOfUnitResult');
|
||||
$method->setAccessible(true);
|
||||
|
||||
try {
|
||||
$result = $method->invokeArgs($this->objectModel, [$case, $caseID, $testRun]);
|
||||
if(dao::isError()) {
|
||||
$errors = dao::getError();
|
||||
return 'dao_error: ' . (is_array($errors) ? implode(', ', $errors) : $errors);
|
||||
}
|
||||
|
||||
// 返回插入成功的标志,而不是具体的ID
|
||||
return $result > 0 ? 'success' : 'failed';
|
||||
} catch(Exception $e) {
|
||||
return 'exception: ' . $e->getMessage();
|
||||
} catch(Error $e) {
|
||||
return 'error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 testtaskModel::importRunOfUnitResult();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:正常导入测试运行数据 @success
|
||||
- 步骤2:测试不同参数的测试运行数据 @success
|
||||
- 步骤3:测试最小caseID为0 @success
|
||||
- 步骤4:测试不同版本的测试运行数据 @success
|
||||
- 步骤5:测试完整的测试运行数据导入 @success
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/testtask.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备(根据需要配置)
|
||||
$testrun = zenData('testrun');
|
||||
$testrun->id->range('1-10');
|
||||
$testrun->task->range('1-5');
|
||||
$testrun->case->range('1-20');
|
||||
$testrun->version->range('1-3');
|
||||
$testrun->assignedTo->range('admin,user1,user2,test3,dev4');
|
||||
$testrun->lastRunner->range('admin,user1,user2');
|
||||
$testrun->lastRunDate->range('`2024-01-01 10:00:00`,`2024-01-02 11:00:00`,`2024-01-03 12:00:00`');
|
||||
$testrun->lastRunResult->range('pass,fail,blocked');
|
||||
$testrun->status->range('normal,wait,done');
|
||||
$testrun->gen(5);
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$testtaskTest = new testtaskTest();
|
||||
|
||||
// 5. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($testtaskTest->importRunOfUnitResultTest((object)array('version' => 2, 'lastRunner' => 'testuser', 'lastRunDate' => '2024-01-01 15:00:00', 'lastRunResult' => 'pass'), 101, (object)array('task' => 6, 'status' => 'normal'))) && p() && e('success'); // 步骤1:正常导入测试运行数据
|
||||
r($testtaskTest->importRunOfUnitResultTest((object)array('version' => 1, 'lastRunner' => 'testuser2', 'lastRunDate' => '2024-01-02 15:00:00', 'lastRunResult' => 'pass'), 102, (object)array('task' => 7, 'status' => 'normal'))) && p() && e('success'); // 步骤2:测试不同参数的测试运行数据
|
||||
r($testtaskTest->importRunOfUnitResultTest((object)array('version' => 1, 'lastRunner' => 'admin', 'lastRunDate' => '2024-01-02 10:00:00', 'lastRunResult' => 'fail'), 0, (object)array('task' => 8, 'status' => 'wait'))) && p() && e('success'); // 步骤3:测试最小caseID为0
|
||||
r($testtaskTest->importRunOfUnitResultTest((object)array('version' => 3, 'lastRunner' => 'testuser4', 'lastRunDate' => '2024-01-04 15:00:00', 'lastRunResult' => 'blocked'), 103, (object)array('task' => 9, 'status' => 'normal'))) && p() && e('success'); // 步骤4:测试不同版本的测试运行数据
|
||||
r($testtaskTest->importRunOfUnitResultTest((object)array('version' => 1, 'lastRunner' => 'developer', 'lastRunDate' => '2024-01-03 14:30:00', 'lastRunResult' => 'blocked'), 104, (object)array('task' => 10, 'status' => 'done', 'assignedTo' => 'tester'))) && p() && e('success'); // 步骤5:测试完整的测试运行数据导入
|
||||
Reference in New Issue
Block a user