supfeer/robo

通过 Robo 任务运行器并行执行 Codeception 任务

1.2 2020-03-11 11:04 UTC

README

Build Status Latest Stable Version Total Downloads License

Robo 任务用于 Codeception 测试的并行执行。需要 Robo 任务运行器

通过 Composer 安装

"codeception/robo-paracept":"~0.4"

将其包含到您的 RoboFile 中

<?php
require_once 'vendor/autoload.php';
require_once 'vendor/codeception/codeception/autoload.php';

class RoboFile extends \Robo\Tasks
{
    use \Codeception\Task\MergeReports;
    use \Codeception\Task\SplitTestsByGroups;
}
?>

PHPUnit 6 兼容性

'vendor/codeception/codeception/autoload.php' 添加到启用 PHPUnit 6 类名

require_once 'vendor/codeception/codeception/autoload.php';

想法

Codeception 测试的并行执行可以通过不同的方式实现。根据项目的实际需求,可能有所不同。因此,我们将准备一系列预定义的任务,可以组合和重新配置以满足需求。

任务

SplitTestsByGroups

从文件夹中加载测试并将它们分配到组之间。

$this->taskSplitTestsByGroups(5)
    ->testsFrom('tests/acceptance')
    ->projectRoot('.')
    ->groupsTo('tests/_data/group_')
    ->run();

此命令使用 Codeception\Test\Loader 加载测试并在组之间组织它们。如果您只想分割测试文件而不是实际测试(并且不在内存中加载测试),您可以使用

$this->taskSplitTestFilesByGroups(5)
   ->testsFrom('tests')
   ->groupsTo('tests/_data/paratest_')
   ->run();

MergeXmlReports

合并多个 XML 报告

$this->taskMergeXmlReports()
    ->from('tests/result/result1.xml')
    ->from('tests/result/result2.xml')
    ->into('tests/result/merged.xml')
    ->run();

MergeHtmlReports

合并多个 HTML 报告

$this->taskMergeHtmlReports()
    ->from('tests/result/result1.html')
    ->from('tests/result/result2.html')
    ->into('tests/result/merged.html')
    ->run();