znt/module/release/test/zen/buildreleaseforcreate.php

83 lines
2.7 KiB
PHP
Executable file
Raw Permalink 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=测试 releaseZen::buildReleaseForCreate();
timeout=0
cid=18023
- 步骤1正常情况
- 属性product @1
- 属性branch @0
- 步骤2shadow产品处理属性product @4
- 步骤3无效产品ID属性product @999
- 步骤4分支产品
- 属性product @2
- 属性branch @1
- 步骤5指定项目
- 属性product @3
- 属性project @3
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/releasezen.unittest.class.php';
// 2. zendata数据准备根据需要配置
$product = zenData('product');
$product->id->range('1-5');
$product->name->range('测试产品{1-5}');
$product->code->range('TEST{1-5}');
$product->shadow->range('0{3},1{2}');
$product->type->range('normal{3},branch{2}');
$product->status->range('normal');
$product->PO->range('admin');
$product->createdBy->range('admin');
$product->createdDate->range('`2024-01-01 00:00:00`');
$product->gen(5);
$project = zenData('project');
$project->id->range('1-5');
$project->name->range('项目{1-5}');
$project->type->range('project');
$project->status->range('wait{2},doing{2},done{1}');
$project->begin->range('`2024-01-01`');
$project->end->range('`2024-12-31`');
$project->acl->range('open');
$project->openedBy->range('admin');
$project->openedDate->range('`2024-01-01 00:00:00`');
$project->gen(5);
$projectproduct = zenData('projectproduct');
$projectproduct->project->range('1-5');
$projectproduct->product->range('1-5');
$projectproduct->branch->range('0');
$projectproduct->plan->range('0');
$projectproduct->gen(5);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$releaseTest = new releaseZenTest();
// 模拟POST数据和form配置
$_POST = array();
$_POST['name'] = '测试发布v1.0';
$_POST['build'] = '1';
$_POST['status'] = 'wait';
$_POST['date'] = '2024-12-31';
$_POST['desc'] = '测试发布描述';
$_POST['newSystem'] = false;
// 加载form配置
include dirname(__FILE__, 3) . '/config/form.php';
// 5. 🔴 强制要求必须包含至少5个测试步骤
r($releaseTest->buildReleaseForCreateTest(1, 0, 1)) && p('product,branch') && e('1,0'); // 步骤1正常情况
r($releaseTest->buildReleaseForCreateTest(4, 0, 0)) && p('product') && e('4'); // 步骤2shadow产品处理
r($releaseTest->buildReleaseForCreateTest(999, 0, 0)) && p('product') && e('999'); // 步骤3无效产品ID
r($releaseTest->buildReleaseForCreateTest(2, 1, 2)) && p('product,branch') && e('2,1'); // 步骤4分支产品
r($releaseTest->buildReleaseForCreateTest(3, 0, 3)) && p('product,project') && e('3,3'); // 步骤5指定项目