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

64 lines
2.8 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 testtaskModel::processResult();
timeout=0
cid=19215
- 步骤1正常情况无failure或skipped属性caseResult @pass
- 步骤2处理failure字符串属性caseResult @fail
- 步骤3处理skipped节点属性caseResult @n/a
- 步骤4处理failure数组节点属性caseResult @fail
- 步骤5处理failure message属性属性caseResult @fail
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. 用户登录(选择合适角色)
su('admin');
// 3. 创建测试实例(变量名与模块名一致)
$testtaskTest = new testtaskModelTest();
// 4. 准备测试数据和对象
$now = helper::now();
// 创建正常的XML节点无failure或skipped
$normalXml = new SimpleXMLElement('<testcase name="test1" time="0.5"></testcase>');
// 创建带failure字符串的XML节点
$failureStringXml = new SimpleXMLElement('<testcase name="test2" time="0.5"><failure>Test failed: assertion error</failure></testcase>');
// 创建带skipped的XML节点
$skippedXml = new SimpleXMLElement('<testcase name="test3" time="0.5"><skipped>Test skipped</skipped></testcase>');
// 创建带failure数组的XML节点
$failureArrayXml = new SimpleXMLElement('<testcase name="test4" time="0.5"><failure>First failure message</failure></testcase>');
// 创建带failure message属性的XML节点
$failureMessageXml = new SimpleXMLElement('<testcase name="test5" time="0.5"><failure message="Assertion failed: expected true but was false"></failure></testcase>');
// 辅助函数:创建基础结果对象
function createBaseResult($now) {
$result = new stdclass();
$result->case = 0;
$result->version = 1;
$result->caseResult = 'pass';
$result->lastRunner = 'admin';
$result->date = $now;
$result->stepResults[0]['result'] = 'pass';
$result->stepResults[0]['real'] = '';
return $result;
}
// 5. 强制要求必须包含至少5个测试步骤
r($testtaskTest->processResultTest(createBaseResult($now), $normalXml, 'failure', 'skipped')) && p('caseResult') && e('pass'); // 步骤1正常情况无failure或skipped
r($testtaskTest->processResultTest(createBaseResult($now), $failureStringXml, 'failure', 'skipped')) && p('caseResult') && e('fail'); // 步骤2处理failure字符串
r($testtaskTest->processResultTest(createBaseResult($now), $skippedXml, 'failure', 'skipped')) && p('caseResult') && e('n/a'); // 步骤3处理skipped节点
r($testtaskTest->processResultTest(createBaseResult($now), $failureArrayXml, 'failure', 'skipped')) && p('caseResult') && e('fail'); // 步骤4处理failure数组节点
r($testtaskTest->processResultTest(createBaseResult($now), $failureMessageXml, 'failure', 'skipped')) && p('caseResult') && e('fail'); // 步骤5处理failure message属性