Merge branch 'release/21.7.7' into feature/workflowgroup

This commit is contained in:
sunguangming
2025-11-25 01:57:28 +00:00
9445 changed files with 100865 additions and 357723 deletions
+5
View File
@@ -393,6 +393,8 @@ class tutorialModel extends model
$story->spec = '';
$story->verify = '';
$story->files = array();
$story->docs = '';
$story->docVersions = '';
return $story;
}
@@ -1171,6 +1173,7 @@ class tutorialModel extends model
$testtask->name = 'Test testtask';
$testtask->execution = 3;
$testtask->build = 1;
$testtask->joint = 0;
$testtask->type = '';
$testtask->owner = '';
$testtask->pri = 3;
@@ -1547,6 +1550,8 @@ class tutorialModel extends model
$design->type = 'HLDS';
$design->files = array();
$design->productName = 'Test product';
$design->docs = '';
$design->docVersions = '';
return $design;
}
+23
View File
@@ -0,0 +1,23 @@
<?php
declare(strict_types = 1);
require_once dirname(__FILE__, 5) . '/test/lib/test.class.php';
class tutorialModelTest extends baseTest
{
protected $moduleName = 'tutorial';
protected $className = 'model';
/**
* Test getColumn method.
*
* @access public
* @return object
*/
public function getColumnTest()
{
$result = $this->invokeArgs('getColumn', []);
if(dao::isError()) return dao::getError();
return $result;
}
}
+1 -1
View File
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->checkNovice();
cid=1
cid=19401
- 检查当account是 guest 的时候的返回值 modifyPassword 0。 @0
- 检查当account是 guest 的时候的返回值 modifyPassword 1。 @0
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBranches();
timeout=0
cid=0
cid=19402
- 步骤1:验证返回分支数组长度 @2
- 步骤2:验证第一个分支ID为0 @0
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBranchesByProject();
timeout=0
cid=0
cid=19403
- 步骤1:验证返回数组长度 @1
- 步骤2:验证产品ID为1的分支数量 @1
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBranchPairs();
timeout=0
cid=0
cid=19404
- 步骤1:验证主分支名称(ID=0) @主干
- 步骤2:验证测试分支名称(ID=1)属性1 @Test branch
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBug();
timeout=0
cid=0
cid=19405
- 步骤1:验证Bug对象ID属性id @1
- 步骤2:验证Bug对象标题属性title @Test bug-active
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBugs();
timeout=0
cid=0
cid=19406
- 步骤1:获取Bug列表,验证数组长度 @2
- 步骤2:验证第一个Bug状态为active第1条的status属性 @active
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBuild();
timeout=0
cid=0
cid=19407
- 步骤1:正常情况,验证ID字段值属性id @1
- 步骤2:验证name字段值属性name @Test build
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBuildPairs();
timeout=0
cid=0
cid=19408
- 步骤1:正常情况,验证ID为1的版本名称属性1 @Test build
- 步骤2:验证指定键的值属性1 @Test build
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getBuilds();
timeout=0
cid=0
cid=19409
- 步骤1:正常调用,验证返回数组长度为1 @1
- 步骤2:验证返回数组包含版本ID为1的对象第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCardGroup();
timeout=0
cid=0
cid=19410
- 步骤1:正常获取卡片组,验证返回数组的顶级键数量 @3
- 步骤2:验证story卡片类型 @story
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCase();
timeout=0
cid=0
cid=19411
- 步骤1:验证用例ID属性id @1
- 步骤2:验证用例标题属性title @Test case
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCases();
timeout=0
cid=0
cid=19412
- 步骤1:测试返回数组类型 @1
- 步骤2:测试返回数组长度 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCharter();
timeout=0
cid=0
cid=19413
- 步骤1:正常获取Charter对象并验证id属性id @1
- 步骤2:验证Charter名称属性name @Test charter
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCharters();
timeout=0
cid=0
cid=19414
- 步骤1:正常调用返回数组长度为1 @1
- 步骤2:验证charter对象ID为1第1条的id属性 @1
+18 -104
View File
@@ -3,114 +3,28 @@
/**
title=- 测试步骤4:获取看板列对象的color属性 >> 期望返回
title=测试 tutorialModel::getColumn();
timeout=0
cid=333
cid=19415
- 执行tutorial模块的getColumnTest方法 属性id @1
- 执行tutorial模块的getColumnTest方法 属性type @backlog
- 执行tutorial模块的getColumnTest方法 属性name @Backlog
- 执行tutorial模块的getColumnTest方法 属性color @#333
- 执行tutorial模块的getColumnTest方法 属性limit @-1
- 步骤1:验证返回值类型 @object
- 步骤2:验证id属性属性id @1
- 步骤3:验证type属性属性type @backlog
- 步骤4:验证name属性属性name @Backlog
- 步骤5:验证limit属性属性limit @-1
*/
// 模拟getColumn方法
function mockGetColumn() {
$column = new stdClass();
$column->id = 1;
$column->parent = 0;
$column->type = 'backlog';
$column->region = 1;
$column->group = 1;
$column->name = 'Backlog';
$column->color = '#333';
$column->limit = -1;
$column->order = 0;
$column->archived = 0;
$column->deleted = 0;
$column->laneType = 'story';
return $column;
}
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 模拟测试类
class MockTutorialTest {
public function getColumnTest() {
return mockGetColumn();
}
}
// 2. 创建测试实例(变量名与模块名一致)
$tutorialTest = new tutorialModelTest();
// 尝试正常初始化,如果失败则使用模拟版本
try {
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tutorial.unittest.class.php';
su('admin');
$tutorial = new tutorialTest();
} catch (Exception $e) {
$tutorial = new MockTutorialTest();
// 如果框架加载失败,定义测试框架函数
if (!function_exists('r')) {
function r($actual) {
global $currentActual;
$currentActual = $actual;
return true;
}
}
if (!function_exists('p')) {
function p($property = '') {
global $currentActual, $checkProperty;
$checkProperty = $property;
return true;
}
}
if (!function_exists('e')) {
function e($expected) {
global $currentActual, $checkProperty;
if (empty($checkProperty)) {
$actual = $currentActual;
} else {
$actual = getValue($currentActual, $checkProperty);
}
return $actual == $expected;
}
}
if (!function_exists('getValue')) {
function getValue($data, $property) {
if (empty($property)) return $data;
if (is_object($data)) {
if (strpos($property, ',') !== false) {
$parts = explode(',', $property);
$result = array();
foreach ($parts as $part) {
$result[] = isset($data->$part) ? $data->$part : '';
}
return implode(',', $result);
} else {
return isset($data->$property) ? $data->$property : '';
}
}
return $data;
}
}
if (!function_exists('su')) {
function su($user) {
// 模拟用户登录,实际不做任何操作
return true;
}
}
}
r($tutorial->getColumnTest()) && p('id') && e('1');
r($tutorial->getColumnTest()) && p('type') && e('backlog');
r($tutorial->getColumnTest()) && p('name') && e('Backlog');
r($tutorial->getColumnTest()) && p('color') && e('#333');
r($tutorial->getColumnTest()) && p('limit') && e('-1');
// 3. 执行测试步骤
r(gettype($tutorialTest->getColumnTest())) && p() && e('object'); // 步骤1:验证返回值类型
r($tutorialTest->getColumnTest()) && p('id') && e('1'); // 步骤2:验证id属性
r($tutorialTest->getColumnTest()) && p('type') && e('backlog'); // 步骤3:验证type属性
r($tutorialTest->getColumnTest()) && p('name') && e('Backlog'); // 步骤4:验证name属性
r($tutorialTest->getColumnTest()) && p('limit') && e('-1'); // 步骤5:验证limit属性
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getColumns();
timeout=0
cid=0
cid=19416
- 步骤1:正常获取看板列,验证返回数组包含3个对象类型 @3
- 步骤2:验证story类型第一列的类型为backlog @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getCommits();
timeout=0
cid=0
cid=19417
- 步骤1:验证返回数组长度为1 @1
- 步骤2:验证提交记录ID第bedeaaf39ef7084b9a455b9d9dba71e2db357201条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDemand();
timeout=0
cid=0
cid=19418
- 步骤1:正常获取需求,验证ID属性id @1
- 步骤2:验证标题属性属性title @Test Demand
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDemandpool();
timeout=0
cid=0
cid=19419
- 步骤1:正常调用并验证基本信息
- 属性id @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDemands();
timeout=0
cid=0
cid=19420
- 步骤1:验证返回2个需求 @2
- 步骤2:验证活跃需求状态第1条的status属性 @active
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDesign();
timeout=0
cid=0
cid=19421
- 步骤1:验证设计ID属性id @1
- 步骤2:验证设计名称属性name @Test Design
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDesigns();
timeout=0
cid=0
cid=19422
- 执行tutorialTest模块的getDesignsTest方法 @1
- 执行tutorialTest模块的getDesignsTest方法 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDoc();
timeout=0
cid=0
cid=19423
- 步骤1:验证文档ID属性id @1
- 步骤2:验证文档标题属性title @Test Doc
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDocLib();
timeout=0
cid=0
cid=19424
- 步骤1:正常调用getDocLib方法
- 属性id @2
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDocLibs();
timeout=0
cid=0
cid=19425
- 测试获取文档库列表的基本信息
- 第2条的id属性 @2
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDocs();
timeout=0
cid=0
cid=19426
- 步骤1:验证文档ID第1条的id属性 @1
- 步骤2:验证文档标题第1条的title属性 @Test Doc
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getDocTemplateSpaces();
timeout=0
cid=0
cid=19427
- 步骤1:测试正常调用获取文档模板空间属性1 @Doc Template Space
- 步骤2:测试返回数组长度 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getEpic();
timeout=0
cid=0
cid=19428
- 步骤1:验证返回对象的ID属性属性id @1
- 步骤2:验证ID和类型
+1 -1
View File
@@ -5,7 +5,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getExecution();
timeout=0
cid=1
cid=19429
- 检查获取 admin 数据的id,project,name,PM,PO,QD,RD
- 属性id @3
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getExecutionBurnData();
timeout=0
cid=0
cid=19430
- 步骤1:正常情况-5个日期
- 第2024-01-01条的value属性 @6
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getExecutionPairs();
timeout=0
cid=1
cid=19431
- 检查获取的数据信息属性3 @Test execution
- 检查获取的数据信息属性4 @~~
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getExecutionProducts();
cid=1;
cid=19432;
- 测试拿到的 admin 数据是否正确 id,name,type,PO,reviewer
- 第1条的id属性 @1
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getExecutionStats();
timeout=0
cid=0
cid=19433
- 测试 admin 登录时是否能拿到 browseType 空 数据
- 第0条的id属性 @3
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getExecutionStories();
cid=1
cid=19434
- 检查获取需求ID第3条的id属性 @3
- 检查获取需求名称第3条的title属性 @Test active story
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getExecutionStoryPairs();
cid=1
cid=19435
- 测试是否能拿到数据属性3 @Test active story
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getFeedback();
timeout=0
cid=0
cid=19436
- 步骤1:验证反馈ID为1 @1
- 步骤2:验证反馈标题为Test feedback @Test feedback
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getFeedbacks();
timeout=0
cid=0
cid=19437
- 测试获取反馈1的信息
- 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getGradePairs();
timeout=0
cid=0
cid=19438
- 步骤1:测试story类型属性1 @SR
- 步骤2:测试requirement类型属性1 @UR
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getGroups();
timeout=0
cid=0
cid=19439
- 步骤1:验证返回结果类型为数组 @1
- 步骤2:验证区域1包含3个组 @3
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getIssue();
timeout=0
cid=0
cid=19440
- 步骤1:验证问题ID属性id @1
- 步骤2:验证问题标题属性title @Test issue-unconfirmed
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getIssues();
timeout=0
cid=0
cid=19441
- 步骤1:问题列表数量 @2
- 步骤2:第1个问题ID第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getLaneGroup();
timeout=0
cid=0
cid=19442
- 步骤1:验证返回结果包含3个泳道组 @3
- 步骤2:验证story类型泳道组 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getLibTree();
timeout=0
cid=0
cid=19443
- 执行tutorialTest模块的getLibTreeTest方法 @1
- 执行tutorialTest模块的getLibTreeTest方法
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getMarket();
timeout=0
cid=0
cid=19444
- 步骤1:验证ID属性id @1
- 步骤2:验证名称属性name @Test Market
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel::getModulePairs();
timeout=0
cid=0
cid=19445
- 测试admin用户获取模块键值对属性1 @Test module
- 测试user1用户获取模块键值对属性1 @Test module
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getPlan();
timeout=0
cid=0
cid=19446
- 执行tutorialTest模块的getPlanTest方法 属性id @1
- 执行tutorialTest模块的getPlanTest方法 属性title @Test plan
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getPlanPairs();
timeout=0
cid=0
cid=19447
- 测试1:验证键1对应的值属性1 @Test plan
- 测试2:再次验证键1的值属性1 @Test plan
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getPlans();
timeout=0
cid=0
cid=19448
- 步骤1:正常调用返回数组长度为1 @1
- 步骤2:验证数组键名为1 @1
+1 -1
View File
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getProduct();
cid=1
cid=19449
- 测试是否能拿到 admin 的数据 id program PO createdBy reviewer
- 属性id @1
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel::getProductPairs();
timeout=0
cid=0
cid=19450
- 步骤1:测试获取产品ID为1的产品名称属性1 @Test product
- 步骤2:测试返回数组不为空 @0
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getProductStats();
cid=1
cid=19451
- 测试是否能拿到 admin 的数据 id program PO createdBy reviewer
- 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getProgram();
timeout=0
cid=0
cid=19452
- 执行tutorialTest模块的getProgramTest方法 属性id @1
- 执行tutorialTest模块的getProgramTest方法 属性name @Test program
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getProgramPairs();
timeout=0
cid=0
cid=19453
- 执行tutorialTest模块的getProgramPairsTest方法 属性1 @Test program
- 执行tutorialTest模块的getProgramPairsTest方法 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getPrograms();
timeout=0
cid=0
cid=19454
- 执行tutorialTest模块的getProgramsTest方法 第1条的name属性 @Test program
- 执行tutorialTest模块的getProgramsTest方法 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getProject();
cid=1
cid=19455
- 测试是否能拿到 admin 的数据
- 属性id @2
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getProjectPairs();
timeout=0
cid=1
cid=19456
- 测试是否能拿到数据属性2 @Test Project
- 测试是否能拿到数据属性3 @~~
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getProjectStats();
cid=1;
cid=19457;
- 测试 admin 登录时是否能拿到 browseType 空 数据
- 第2条的id属性 @2
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRegionPairs();
timeout=0
cid=0
cid=19458
- 步骤1:正常情况,验证返回默认区域属性1 @默认区域
- 步骤2:验证返回数组数量 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRelease();
timeout=0
cid=0
cid=19459
- 步骤1:正常情况,验证ID属性id @1
- 步骤2:验证名称属性name @Test release
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getReleases();
timeout=0
cid=0
cid=19460
- 步骤1:验证返回数组长度为1 @1
- 步骤2:验证数组键名为1 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRepo();
timeout=0
cid=0
cid=19461
- 执行tutorialTest模块的getRepoTest方法
- 属性id @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRepoPairs();
timeout=0
cid=0
cid=19462
- 步骤1:验证返回数组包含预期的键值对属性1 @[git] Test repo
- 步骤2:验证返回数组长度为1 @1
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRequirement();
timeout=0
cid=0
cid=19463
- 步骤1:验证用户需求是否为父级属性isParent @1
- 步骤2:验证用户需求ID属性id @2
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getResearchStageStats();
timeout=0
cid=0
cid=19464
- 步骤1:获取调研阶段统计数据,期望返回3个元素 @3
- 步骤2:验证第一个元素的type属性第0条的type属性 @stage
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getResult();
timeout=0
cid=0
cid=19465
- 步骤1:正常获取结果对象的核心字段
- 属性id @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getResults();
timeout=0
cid=0
cid=19466
- 执行tutorialTest模块的getResultsTest方法 @1
- 执行tutorialTest模块的getResultsTest方法 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getReview();
timeout=0
cid=0
cid=19467
- 执行tutorialTest模块的getReviewTest方法 属性id @1
- 执行tutorialTest模块的getReviewTest方法 属性project @2
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getReviews();
timeout=0
cid=0
cid=19468
- 步骤1:正常调用返回数组长度 @1
- 步骤2:验证评审ID第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRisk();
timeout=0
cid=0
cid=19469
- 步骤1:验证ID值属性id @1
- 步骤2:验证名称属性name @Test risk
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRisks();
timeout=0
cid=0
cid=19470
- 步骤1:获取风险列表,验证数组长度 @1
- 步骤2:验证第一个风险对象的ID第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getRun();
timeout=0
cid=0
cid=19471
- 执行tutorialTest模块的getRunTest方法 属性id @1
- 执行tutorialTest模块的getRunTest方法 属性status @normal
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStage();
timeout=0
cid=0
cid=19472
- 步骤1:验证stage的id属性属性id @3
- 步骤2:验证stage的name属性属性name @Development stage
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStages();
timeout=0
cid=0
cid=19473
- 步骤1:验证返回数组包含ID为3的阶段第3条的id属性 @3
- 步骤2:验证阶段名称第3条的name属性 @Development stage
+1 -1
View File
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getStories();
cid=1
cid=19474
- 测试获取需求1的信息
- 第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStory();
timeout=0
cid=0
cid=19475
- 步骤1:正常获取研发需求,验证ID属性id @3
- 步骤2:验证标题属性属性title @Test active story
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStoryByID();
timeout=0
cid=0
cid=19476
- 步骤1:获取业务需求
- 属性id @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStoryGrade();
timeout=0
cid=0
cid=19477
- 步骤1:验证返回数组长度 @3
- 步骤2:验证story层级类型第0条的type属性 @story
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStoryPairs();
timeout=0
cid=0
cid=19478
- 步骤1:正常情况获取需求键值对数量 @4
- 步骤2:验证Epic需求ID和标题映射属性1 @Test epic
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getStoryPairs();
timeout=0
cid=0
cid=19479
- 步骤1:验证返回结果是数组格式 @1
- 步骤2:验证数组包含正确数量的需求键值对 @4
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getSubSpaces();
timeout=0
cid=0
cid=19480
- 步骤1:测试'custom'参数属性1 @Test Team Space
- 步骤2:测试'mine'参数属性1 @Test My Space
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getSystem();
timeout=0
cid=0
cid=19481
- 执行tutorialTest模块的getSystemTest方法 属性id @1
- 执行tutorialTest模块的getSystemTest方法 属性name @Test App
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getSystemList();
timeout=0
cid=0
cid=19482
- 步骤1:正常情况-验证返回数组包含ID为1的元素第1条的id属性 @1
- 步骤2:边界值-验证系统名称第1条的name属性 @Test App
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getSystemPairs();
timeout=0
cid=0
cid=19483
- 测试步骤1:验证键1对应的值属性1 @Test App
- 测试步骤2:再次验证键1的值属性1 @Test App
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTask();
timeout=0
cid=0
cid=19484
- 步骤1:测试获取默认任务对象的基本属性
- 属性id @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTasks();
timeout=0
cid=0
cid=19485
- 步骤1:获取任务列表,验证数组长度 @2
- 步骤2:验证第一个任务状态第1条的status属性 @wait
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getTeamMembers();
cid=1
cid=19486
- 测试是否能拿到 admin 数据
- 第admin条的project属性 @1
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getTeamMembersPairs();
timeout=0
cid=1
cid=19487
- 测试是否能拿到数据 admin属性admin @admin
- 测试是否能拿到数据 空属性~~ @~~
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTestReport();
timeout=0
cid=0
cid=19488
- 步骤1:正常获取测试报告对象的核心字段
- 属性id @1
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTestReports();
timeout=0
cid=0
cid=19489
- 步骤1:验证返回数组包含1个元素 @1
- 步骤2:验证包含ID为1的测试报告第1条的id属性 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTesttask();
timeout=0
cid=0
cid=19490
- 步骤1:正常获取测试单对象
- 属性id @1
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTesttaskPairs();
timeout=0
cid=0
cid=19491
- 步骤1:正常调用获取测试单键值对属性1 @Test testtask
- 步骤2:验证返回数组长度 @1
+1 -1
View File
@@ -5,7 +5,7 @@
title=测试 tutorialModel::getTesttasks();
timeout=0
cid=0
cid=19492
- 步骤1:获取测试单列表数量验证 @1
- 步骤2:验证返回数组的键值 @1
+1 -1
View File
@@ -6,7 +6,7 @@ declare(strict_types=1);
title=测试 tutorialModel->getTutorialed();
timeout=0
cid=1
cid=19493
- 测试是否能拿到 admin 的数据 @3
- 测试是否能拿到 user1 的数据 @4
+1 -1
View File
@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
title=测试 tutorialModel->getUserPairs();
cid=1
cid=19494
- 测试是否能拿到 admin 数据 admin属性admin @admin
- 测试是否能拿到 admin 数据 test属性test @Test