* [misc] Enhance unit tests for jobModel::getSonarqubeByRepo() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:17 +08:00
co-authored by Claude
parent d950955af6
commit a7008f25ac
2 changed files with 94 additions and 9 deletions
+32 -9
View File
@@ -1,20 +1,43 @@
#!/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->getSonarqubeByRepo();
title=测试 jobModel::getSonarqubeByRepo();
timeout=0
cid=1
cid=0
- 根据repo查询sonarqube第1条的name属性 @这是一个Job1
- 步骤1:查询单个版本库返回该repo的最新任务第1条的name属性 @SonarQube任务Repo1_3
- 步骤2:查询另一个版本库返回该repo的最新任务第2条的name属性 @SonarQube任务Repo2_2
- 步骤3:查询不存在的版本库ID返回空数组 @0
- 步骤4:排除指定jobID后返回该repo的其他任务第1条的name属性 @SonarQube任务Repo1_2
- 步骤5:显示已删除任务参数为true时包含已删除任务第3条的name属性 @已删除SonarQube任务
- 步骤6:不显示已删除任务参数为false时排除已删除任务第3条的name属性 @SonarQube任务Repo3_1
- 步骤7:空版本库ID列表返回空数组 @0
*/
$repoIDList = array('1', '2');
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/job.unittest.class.php';
$job = new jobTest();
r($job->getSonarqubeByRepoTest($repoIDList)) && p('1:name') && e('这是一个Job1'); // 根据repo查询sonarqube
// 准备测试数据
$job = zenData('job');
$job->id->range('1-10');
$job->name->range('SonarQube任务Repo1_1,SonarQube任务Repo1_2,SonarQube任务Repo1_3,SonarQube任务Repo2_1,SonarQube任务Repo2_2,SonarQube任务Repo3_1,已删除SonarQube任务,SonarQube任务Repo4,SonarQube任务Repo5,其他任务');
$job->repo->range('1,1,1,2,2,3,3,4,5,99');
$job->frame->range('sonarqube,sonarqube,sonarqube,sonarqube,sonarqube,sonarqube,sonarqube,sonarqube,sonarqube,phpunit');
$job->engine->range('jenkins,jenkins,jenkins,gitlab,gitlab,jenkins,gitlab,jenkins,gitlab,jenkins');
$job->deleted->range('0,0,0,0,0,0,1,0,0,0');
$job->gen(10);
su('admin');
$jobTest = new jobTest();
r($jobTest->getSonarqubeByRepoTest(array(1))) && p('1:name') && e('SonarQube任务Repo1_3'); // 步骤1:查询单个版本库返回该repo的最新任务
r($jobTest->getSonarqubeByRepoTest(array(2))) && p('2:name') && e('SonarQube任务Repo2_2'); // 步骤2:查询另一个版本库返回该repo的最新任务
r($jobTest->getSonarqubeByRepoTest(array(999))) && p() && e('0'); // 步骤3:查询不存在的版本库ID返回空数组
r($jobTest->getSonarqubeByRepoTest(array(1), 3)) && p('1:name') && e('SonarQube任务Repo1_2'); // 步骤4:排除指定jobID后返回该repo的其他任务
r($jobTest->getSonarqubeByRepoTest(array(3), 0, true)) && p('3:name') && e('已删除SonarQube任务'); // 步骤5:显示已删除任务参数为true时包含已删除任务
r($jobTest->getSonarqubeByRepoTest(array(3), 0, false)) && p('3:name') && e('SonarQube任务Repo3_1'); // 步骤6:不显示已删除任务参数为false时排除已删除任务
r($jobTest->getSonarqubeByRepoTest(array())) && p() && e('0'); // 步骤7:空版本库ID列表返回空数组
@@ -0,0 +1,62 @@
---
title: Job data for getSonarqubeByRepo test
desc: Test data for job table with sonarqube jobs by repository
author: Claude
version: 1.0
fields:
- field: id
note: Job ID
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: Job name
range: "这是一个SonarQube任务1,这是一个SonarQube任务2,这是一个SonarQube任务3,Jenkins任务,GitLab任务,已删除SonarQube任务,这是一个SonarQube任务7,这是一个SonarQube任务8,这是一个SonarQube任务9,这是一个SonarQube任务10"
- field: repo
note: Repository ID
range: "1{3},2{2},3{1},4{1},5{1},99{1},100{1}"
prefix: ""
postfix: ""
- field: product
note: Product ID
range: 1-3
prefix: ""
postfix: ""
- field: frame
note: Framework type
range: "sonarqube{7},phpunit{2},jest{1}"
prefix: ""
postfix: ""
- field: engine
note: Engine type
range: "jenkins{5},gitlab{3},sonarqube{2}"
prefix: ""
postfix: ""
- field: server
note: Server ID
range: 1-3
prefix: ""
postfix: ""
- field: pipeline
note: Pipeline config
range: "pipeline1,pipeline2,pipeline3"
prefix: ""
postfix: ""
- field: deleted
note: Deletion status
range: "0{8},1{2}"
prefix: ""
postfix: ""
- field: createdBy
note: Creator
range: "admin{7},user1{2},user2{1}"
prefix: ""
postfix: ""
- field: createdDate
note: Creation date
range: "2023-01-01 00:00:00,2023-06-01 00:00:00,2023-12-01 00:00:00"
prefix: ""
postfix: ""