znt/module/testtask/test/model/parseztffuncresult.php

120 lines
3.7 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 testtaskModel::parseZTFFuncResult();
timeout=0
cid=19212
- 步骤1正常情况 @1
- 步骤2多个用例 @2
- 步骤3空数组 @0
- 步骤4失败情况 @fail
- 步骤5缺少步骤数据 @No Steps Case
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. zendata数据准备根据需要配置
$table = zenData('user');
$table->account->range('admin,user1,user2');
$table->realname->range('管理员,用户1,用户2');
$table->password->range('123456{3}');
$table->gen(3);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$testtaskTest = new testtaskModelTest();
// 5. 🔴 强制要求必须包含至少5个测试步骤
// 创建测试用例结果数据 - 正常情况
$normalCaseResults = array();
$caseResult1 = new stdclass();
$caseResult1->title = 'Test Case 1';
$caseResult1->id = 1;
$caseResult1->steps = array();
$step1 = new stdclass();
$step1->name = 'Step 1';
$step1->status = 'pass';
$step1->checkPoints = array();
$checkPoint1 = new stdclass();
$checkPoint1->expect = 'Expected result 1';
$checkPoint1->actual = 'Actual result 1';
$step1->checkPoints[] = $checkPoint1;
$caseResult1->steps[] = $step1;
$normalCaseResults[] = $caseResult1;
$result1 = $testtaskTest->parseZTFFuncResultTest($normalCaseResults, 'phpunit', 1, 1, 1);
r(count($result1['cases'])) && p() && e('1'); // 步骤1正常情况
// 创建多个测试用例数据
$multipleCaseResults = array();
$caseResult2 = new stdclass();
$caseResult2->title = 'Test Case 2';
$caseResult2->id = 2;
$caseResult2->steps = array();
$step2 = new stdclass();
$step2->name = 'Step 2';
$step2->status = 'pass';
$step2->checkPoints = array();
$checkPoint2 = new stdclass();
$checkPoint2->expect = 'Expected result 2';
$checkPoint2->actual = 'Actual result 2';
$step2->checkPoints[] = $checkPoint2;
$caseResult2->steps[] = $step2;
$multipleCaseResults[] = $caseResult1;
$multipleCaseResults[] = $caseResult2;
$result2 = $testtaskTest->parseZTFFuncResultTest($multipleCaseResults, 'phpunit', 1, 1, 1);
r(isset($result2['cases'][0]) ? count($result2['cases'][0]) : 0) && p() && e('2'); // 步骤2多个用例
// 空测试结果
$emptyCaseResults = array();
$result3 = $testtaskTest->parseZTFFuncResultTest($emptyCaseResults, 'phpunit', 1, 1, 1);
r(count($result3['cases'])) && p() && e('0'); // 步骤3空数组
// 包含失败步骤的测试结果
$failCaseResults = array();
$failCaseResult = new stdclass();
$failCaseResult->title = 'Fail Test Case';
$failCaseResult->id = 3;
$failCaseResult->steps = array();
$failStep = new stdclass();
$failStep->name = 'Fail Step';
$failStep->status = 'fail';
$failStep->checkPoints = array();
$failCheckPoint = new stdclass();
$failCheckPoint->expect = 'Expected result';
$failCheckPoint->actual = 'Different result';
$failStep->checkPoints[] = $failCheckPoint;
$failCaseResult->steps[] = $failStep;
$failCaseResults[] = $failCaseResult;
$result4 = $testtaskTest->parseZTFFuncResultTest($failCaseResults, 'phpunit', 1, 1, 1);
r(isset($result4['results'][0][0]->caseResult) ? $result4['results'][0][0]->caseResult : 'empty') && p() && e('fail'); // 步骤4失败情况
// 缺少步骤数据的测试结果
$noStepsCaseResults = array();
$noStepsCase = new stdclass();
$noStepsCase->title = 'No Steps Case';
$noStepsCase->id = 4;
// 不设置steps属性
$noStepsCaseResults[] = $noStepsCase;
$result5 = $testtaskTest->parseZTFFuncResultTest($noStepsCaseResults, 'phpunit', 1, 1, 1);
r(isset($result5['cases'][0][0]->title) ? $result5['cases'][0][0]->title : 'empty') && p() && e('No Steps Case'); // 步骤5缺少步骤数据