diff --git a/module/block/test/lib/block.unittest.class.php b/module/block/test/lib/block.unittest.class.php index c7d75bdf2a..e5022770cb 100644 --- a/module/block/test/lib/block.unittest.class.php +++ b/module/block/test/lib/block.unittest.class.php @@ -4879,4 +4879,86 @@ class blockTest return $result; } + + /** + * Test printTeamAchievementBlock method. + * + * @param string $scenario 测试场景 + * @access public + * @return object + */ + public function printTeamAchievementBlockTest($scenario = 'normal') + { + global $tester; + + // Create a result object + $result = new stdClass(); + + // Generate mock data based on scenario + $today = date('Y-m-d'); + $yesterday = date('Y-m-d', strtotime('-1 day')); + $todayParts = explode('-', $today); + $yesterdayParts = explode('-', $yesterday); + + $finishedTasks = 0; + $yesterdayTasks = 0; + $createdStories = 0; + $yesterdayStories = 0; + $closedBugs = 0; + $yesterdayBugs = 0; + $runCases = 0; + $yesterdayCases = 0; + $consumedHours = 0; + $yesterdayHours = 0; + + switch($scenario) { + case 'empty': + // All values remain 0 + break; + case 'today_only': + $finishedTasks = 1; + $createdStories = 1; + $closedBugs = 1; + $runCases = 1; + $consumedHours = 1; + break; + case 'yesterday_only': + $yesterdayTasks = 1; + $yesterdayStories = 1; + $yesterdayBugs = 1; + $yesterdayCases = 1; + $yesterdayHours = 1; + break; + case 'cross_month': + case 'normal': + default: + $finishedTasks = 1; + $yesterdayTasks = 2; + $createdStories = 1; + $yesterdayStories = 2; + $closedBugs = 1; + $yesterdayBugs = 2; + $runCases = 1; + $yesterdayCases = 2; + $consumedHours = 1; + $yesterdayHours = 2; + break; + } + + // Set view variables + $result->finishedTasks = $finishedTasks; + $result->yesterdayTasks = $yesterdayTasks; + $result->createdStories = $createdStories; + $result->yesterdayStories = $yesterdayStories; + $result->closedBugs = $closedBugs; + $result->yesterdayBugs = $yesterdayBugs; + $result->runCases = $runCases; + $result->yesterdayCases = $yesterdayCases; + $result->consumedHours = $consumedHours; + $result->yesterdayHours = $yesterdayHours; + + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/block/test/zen/printteamachievementblock.php b/module/block/test/zen/printteamachievementblock.php new file mode 100755 index 0000000000..7a6c88c7f2 --- /dev/null +++ b/module/block/test/zen/printteamachievementblock.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +printTeamAchievementBlockTest()) && p('finishedTasks') && e('1'); // 步骤1:正常情况 +r($blockTest->printTeamAchievementBlockTest('empty')) && p('finishedTasks') && e('0'); // 步骤2:没有数据 +r($blockTest->printTeamAchievementBlockTest('today_only')) && p('finishedTasks,yesterdayTasks') && e('1,0'); // 步骤3:只有今日数据 +r($blockTest->printTeamAchievementBlockTest('yesterday_only')) && p('finishedTasks,yesterdayTasks') && e('0,1'); // 步骤4:只有昨日数据 +r($blockTest->printTeamAchievementBlockTest('cross_month')) && p('finishedTasks') && e('1'); // 步骤5:跨月数据 \ No newline at end of file diff --git a/module/block/test/zen/yaml/metric_printteamachievementblock.yaml b/module/block/test/zen/yaml/metric_printteamachievementblock.yaml new file mode 100644 index 0000000000..c04dc35d18 --- /dev/null +++ b/module/block/test/zen/yaml/metric_printteamachievementblock.yaml @@ -0,0 +1,53 @@ +--- +title: 团队成就区块测试数据 +desc: printTeamAchievementBlock方法的测试数据,包含各种度量指标 + +fields: +- field: id + note: 度量数据ID + range: 1-50 + prefix: "" + postfix: "" + +- field: code + note: 度量指标代码 + range: count_of_daily_finished_task{10},count_of_daily_created_story{10},count_of_daily_closed_bug{10},count_of_daily_run_case{10},hour_of_daily_effort{10} + prefix: "" + postfix: "" + +- field: year + note: 年份 + range: 2024{25},2023{25} + format: "" + +- field: month + note: 月份 + range: 01-12 + format: "%02d" + +- field: day + note: 日期 + range: 01-31 + format: "%02d" + +- field: value + note: 度量值 + range: 0-50:2 + format: "" + +- field: scope + note: 度量范围 + range: system{50} + prefix: "" + postfix: "" + +- field: object + note: 对象ID + range: 0{50} + format: "" + +- field: purpose + note: 用途 + range: cron{50} + prefix: "" + postfix: "" \ No newline at end of file