znt/module/testcase/test/zen/processimportcolumnkey.php

79 lines
3 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=测试 testcaseZen::processImportColumnKey();
timeout=0
cid=19102
- 步骤1正常情况 @title,module,type,pri,expect
- 步骤2部分映射 @title,module
- 步骤3空头部字段 @title
- 步骤4空映射返回空数组长度 @0
- 步骤5空文件处理 @0
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/testcasezen.unittest.class.php';
// 2. zendata数据准备
$file = zenData('file');
$file->loadYaml('file_processimportcolumnkey', false, 2)->gen(5);
// 3. 用户登录
su('admin');
// 4. 创建测试CSV文件
$csvContent1 = "用例标题,所属模块,用例类型,优先级,预期结果\n测试用例1,功能模块,功能测试,高,预期通过\n测试用例2,界面模块,界面测试,中,预期通过";
$csvContent2 = "标题,模块,备注\n测试用例A,模块A,备注A\n测试用例B,模块B,备注B";
$csvContent3 = "用例标题,,用例类型,,预期结果\n测试用例X,,功能测试,,预期通过";
$csvContent4 = "unknown1,unknown2,unknown3\n数据1,数据2,数据3";
$csvContent5 = "\n"; // 空内容只有换行
// 确保创建在zentao路径下
$testDir = dirname(__FILE__, 5) . '/tmp/unittest/';
if(!is_dir($testDir)) mkdir($testDir, 0777, true);
file_put_contents($testDir . 'normal_test.csv', $csvContent1);
file_put_contents($testDir . 'partial_test.csv', $csvContent2);
file_put_contents($testDir . 'empty_header_test.csv', $csvContent3);
file_put_contents($testDir . 'unknown_fields_test.csv', $csvContent4);
file_put_contents($testDir . 'empty_test.csv', $csvContent5);
// 5. 创建测试实例
$testcaseTest = new testcaseZenTest();
// 6. 定义字段映射
$normalFields = array(
'用例标题' => 'title',
'所属模块' => 'module',
'用例类型' => 'type',
'优先级' => 'pri',
'预期结果' => 'expect'
);
$partialFields = array(
'标题' => 'title',
'模块' => 'module'
);
$emptyFields = array();
// 7. 强制要求必须包含至少5个测试步骤
r($testcaseTest->processImportColumnKeyTest($testDir . 'normal_test.csv', $normalFields)) && p() && e('title,module,type,pri,expect'); // 步骤1正常情况
r($testcaseTest->processImportColumnKeyTest($testDir . 'partial_test.csv', $partialFields)) && p() && e('title,module'); // 步骤2部分映射
r($testcaseTest->processImportColumnKeyTest($testDir . 'empty_header_test.csv', $normalFields)) && p() && e('title'); // 步骤3空头部字段
r($testcaseTest->processImportColumnKeyTest($testDir . 'unknown_fields_test.csv', $emptyFields)) && p() && e('0'); // 步骤4空映射返回空数组长度
r($testcaseTest->processImportColumnKeyTest($testDir . 'empty_test.csv', $normalFields)) && p() && e('0'); // 步骤5空文件处理
// 8. 清理测试文件
unlink($testDir . 'normal_test.csv');
unlink($testDir . 'partial_test.csv');
unlink($testDir . 'empty_header_test.csv');
unlink($testDir . 'unknown_fields_test.csv');
unlink($testDir . 'empty_test.csv');