bitween-software / robo-paracept
使用 Robo Task Runner 并行执行 Codeception 任务
0.5.0
2021-04-19 08:46 UTC
Requires
- consolidation/robo: ^3.0.0
Requires (Dev)
- codeception/base: ^2.2
- codeception/codeception: ^4.1.20
README
Robo 任务用于 Codeception 测试并行执行。需要 Robo Task Runner
通过 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();