* [misc] Enhance unit tests for jobModel::getListByRepoID() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,26 +1,53 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/job.unittest.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=jobModel::getListByRepoId();
|
||||
title=测试 jobModel::getListByRepoID();
|
||||
timeout=0
|
||||
cid=1
|
||||
cid=0
|
||||
|
||||
- 获取repo为1的name第1条的name属性 @这是一个Job1
|
||||
- 获取repo为1的lastStatus第1条的lastStatus属性 @a
|
||||
- 获取repo为100001的name第100001条的name属性 @0
|
||||
- 测试步骤1:repo=1有3个未删除作业 @3
|
||||
- 测试步骤2:repo=2有2个作业 @2
|
||||
- 测试步骤3:不存在的repo返回空 @0
|
||||
- 测试步骤4:repo=0的边界值测试 @1
|
||||
- 测试步骤5:验证排序后第一个作业名称第8条的name属性 @Jenkins Job3
|
||||
- 测试步骤6:验证返回字段完整性
|
||||
- 第8条的id属性 @8
|
||||
- 第8条的8:name属性 @Jenkins Job3
|
||||
- 第8条的8:lastStatus属性 @running
|
||||
- 测试步骤7:验证特定repo的作业ID第6条的id属性 @6
|
||||
|
||||
*/
|
||||
zenData('job')->gen('1');
|
||||
|
||||
$job = new jobTest();
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/job.unittest.class.php';
|
||||
|
||||
$repoIdList = array('1', '100001');
|
||||
// 准备测试数据
|
||||
$jobTable = zenData('job');
|
||||
$jobTable->id->range('1-10');
|
||||
$jobTable->name->range('Jenkins Job1, Jenkins Job2, GitLab Pipeline1, Test Job1, API Test Job, Performance Test, Security Test, Jenkins Job3, Deploy Job, Monitor Job');
|
||||
$jobTable->repo->range('1, 1, 2, 2, 3, 999, 0, 1, 888, 1');
|
||||
$jobTable->product->range('1-3');
|
||||
$jobTable->frame->range('phpunit, pytest, jest, junit, mocha, cypress, selenium, testng, robot, cucumber');
|
||||
$jobTable->engine->range('jenkins{6}, gitlab{2}, github{2}');
|
||||
$jobTable->server->range('1-5');
|
||||
$jobTable->pipeline->range('/job/pipeline1, /job/pipeline2, main, develop, feature, master, test, release, deploy, monitor');
|
||||
$jobTable->lastStatus->range('success, failed, running, success, \'\', failed, success, running, success, failed');
|
||||
$jobTable->deleted->range('0, 0, 0, 0, 0, 0, 0, 0, 1, 1');
|
||||
$jobTable->gen(10);
|
||||
|
||||
r($job->getListByRepoIDTest($repoIdList[0])) && p('1:name') && e('这是一个Job1'); // 获取repo为1的name
|
||||
r($job->getListByRepoIDTest($repoIdList[0])) && p('1:lastStatus') && e('a'); // 获取repo为1的lastStatus
|
||||
r($job->getListByRepoIDTest($repoIdList[1])) && p('100001:name') && e('0'); // 获取repo为100001的name
|
||||
// 使用管理员身份登录
|
||||
su('admin');
|
||||
|
||||
// 创建测试实例
|
||||
$jobTest = new jobTest();
|
||||
|
||||
// 测试步骤1:有效版本库ID查询 - 检查repo=1的作业数量(排除已删除)
|
||||
r(count($jobTest->getListByRepoIDTest(1))) && p() && e('3'); // 测试步骤1:repo=1有3个未删除作业
|
||||
r(count($jobTest->getListByRepoIDTest(2))) && p() && e('2'); // 测试步骤2:repo=2有2个作业
|
||||
r(count($jobTest->getListByRepoIDTest(99999))) && p() && e('0'); // 测试步骤3:不存在的repo返回空
|
||||
r(count($jobTest->getListByRepoIDTest(0))) && p() && e('1'); // 测试步骤4:repo=0的边界值测试
|
||||
r($jobTest->getListByRepoIDTest(1)) && p('8:name') && e('Jenkins Job3'); // 测试步骤5:验证排序后第一个作业名称
|
||||
r($jobTest->getListByRepoIDTest(1)) && p('8:id,8:name,8:lastStatus') && e('8,Jenkins Job3,running'); // 测试步骤6:验证返回字段完整性
|
||||
r($jobTest->getListByRepoIDTest(999)) && p('6:id') && e('6'); // 测试步骤7:验证特定repo的作业ID
|
||||
@@ -0,0 +1,189 @@
|
||||
---
|
||||
title: job表数据定义 - getListByRepoID方法测试
|
||||
desc: 为job模块getListByRepoID方法生成测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 作业ID
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 作业名称
|
||||
range: Jenkins Job1, Jenkins Job2, Jenkins Job3, GitLab Pipeline1, GitLab Pipeline2, Test Job1, Test Job2, API Test Job, Security Test, Performance Test
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: repo
|
||||
note: 版本库ID
|
||||
range: 1, 1, 1, 2, 2, 3, 999, 999, 0, 5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: 产品ID
|
||||
range: 1-3
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: frame
|
||||
note: 测试框架
|
||||
range: phpunit{4}, pytest{3}, jest{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: engine
|
||||
note: 引擎类型
|
||||
range: jenkins{5}, gitlab{3}, github{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: autoRun
|
||||
note: 自动运行
|
||||
range: 1{8}, 0{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: server
|
||||
note: 服务器ID
|
||||
range: 1-5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: pipeline
|
||||
note: 流水线配置
|
||||
range: /job/pipeline1{3}, /job/pipeline2{2}, main{2}, develop{2}, feature{1}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: triggerType
|
||||
note: 触发类型
|
||||
range: commit{5}, tag{3}, schedule{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: sonarqubeServer
|
||||
note: SonarQube服务器ID
|
||||
range: 0{6}, 1{2}, 2{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: projectKey
|
||||
note: 项目Key
|
||||
range: project1{3}, project2{2}, ''{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: svnDir
|
||||
note: SVN目录
|
||||
range: /trunk{3}, /branches{2}, ''{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: atDay
|
||||
note: 定时执行日期
|
||||
range: ''
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: atTime
|
||||
note: 定时执行时间
|
||||
range: ''
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: customParam
|
||||
note: 自定义参数
|
||||
range: ''{8}, param1=value1{1}, param2=value2{1}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: comment
|
||||
note: 备注
|
||||
range: 测试作业{3}, 自动化测试{2}, 单元测试{2}, CI流水线{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: triggerActions
|
||||
note: 触发动作
|
||||
range: ''
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{5}, user{3}, tester{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: '2023-01-01 00:00:00'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: editedBy
|
||||
note: 编辑者
|
||||
range: admin{5}, user{3}, tester{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: editedDate
|
||||
note: 编辑时间
|
||||
range: '2023-01-01 00:00:00'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: lastExec
|
||||
note: 最后执行时间
|
||||
range: '2023-01-01 10:00:00'{3}, ''{7}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: lastStatus
|
||||
note: 最后执行状态
|
||||
range: success, failed, running, success, failed, '', '', success, failed, running
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: lastTag
|
||||
note: 最后标签
|
||||
range: v1.0{2}, v2.0{2}, ''{6}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: 删除状态
|
||||
range: 0, 0, 0, 0, 0, 0, 0, 0, 1, 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
Reference in New Issue
Block a user