Files
EasySoft-ZenTaoPMS/module/compile/test/model/getlogs.php
T
2025-09-25 09:16:04 +08:00

82 lines
2.9 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env php
<?php
/**
title=测试 compileModel::getLogs();
timeout=0
cid=0
- Jenkins日志获取,返回字符串类型 @1
- GitLab日志获取,返回字符串类型 @1
- 无效队列ID返回空字符串 @
- 空pipeline配置 @
- 空队列ID @
- 不支持的引擎类型 @
- GitLab缺少project配置 @
*/
// 1. 导入依赖
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/compile.unittest.class.php';
// 2. zendata数据准备
zenData('compile')->loadYaml('compile_getlogs', false, 2)->gen(10);
zenData('job')->loadYaml('job_getlogs', false, 2)->gen(6);
zenData('pipeline')->loadYaml('pipeline_getlogs', false, 2)->gen(6);
zenData('repo')->gen(3);
// 3. 用户登录
su('admin');
// 4. 创建测试实例
$compileTest = new compileTest();
// 5. 执行测试步骤(至少5个)
// 测试步骤1:Jenkins引擎正常获取日志
$compile = $tester->loadModel('compile')->getByID(1);
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'jenkins';
r(is_string($compileTest->getLogsTest($job, $compile))) && p() && e('1'); // Jenkins日志获取,返回字符串类型
// 测试步骤2:GitLab引擎正常获取日志
$compile = $tester->loadModel('compile')->getByID(2);
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'gitlab';
r(is_string($compileTest->getLogsTest($job, $compile))) && p() && e('1'); // GitLab日志获取,返回字符串类型
// 测试步骤3:无效队列ID的编译记录
$compile = $tester->loadModel('compile')->getByID(3);
$compile->queue = 0;
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'jenkins';
r($compileTest->getLogsTest($job, $compile)) && p() && e(''); // 无效队列ID返回空字符串
// 测试步骤4:空的作业pipeline配置
$compile = $tester->loadModel('compile')->getByID(4);
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'jenkins';
$job->pipeline = '';
r($compileTest->getLogsTest($job, $compile)) && p() && e(''); // 空pipeline配置
// 测试步骤5:队列ID为空的编译记录
$compile = $tester->loadModel('compile')->getByID(5);
$compile->queue = null;
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'jenkins';
r($compileTest->getLogsTest($job, $compile)) && p() && e(''); // 空队列ID
// 测试步骤6:不支持的引擎类型
$compile = $tester->loadModel('compile')->getByID(6);
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'unknown';
r($compileTest->getLogsTest($job, $compile)) && p() && e(''); // 不支持的引擎类型
// 测试步骤7GitLab引擎但缺少project配置
$compile = $tester->loadModel('compile')->getByID(1);
$job = $tester->loadModel('job')->getByID($compile->job);
$job->engine = 'gitlab';
$job->pipeline = '{"reference": "master"}';
r($compileTest->getLogsTest($job, $compile)) && p() && e(''); // GitLab缺少project配置