<?php
require_once 'vendor/autoload.php';
use Codeception\Task\MergeReports;
use Codeception\Task\SplitTestsByGroups;
use Robo\Result;
use Robo\Tasks;
class RoboFile extends Tasks
{
use MergeReports;
use SplitTestsByGroups;
public function parallelSplitTests(): void
{
$this->taskSplitTestFilesByGroups(5)
->projectRoot('.')
->testsFrom('tests/acceptance')
->groupsTo('tests/_data/paracept_')
->run();
}
public function parallelRun(): Result
{
$parallel = $this->taskParallelExec();
for ($i = 1; $i <= 5; $i++) {
$parallel->process(
$this->taskCodecept()
->suite('acceptance')
->group("paracept_$i")
->debug()
->configFile(__DIR__ . '/codeception.yml')
->xml(__DIR__ . "/tests/_output/result_$i.xml")
);
}
return $parallel->run();
}
public function parallelMergeResults(): void
{
$merge = $this->taskMergeXmlReports();
for ($i = 1; $i <= 5; $i++) {
$merge->from(__DIR__ . "/tests/_output/result_$i.xml");
}
$merge->into(__DIR__ . '/tests/_output/result_paracept.xml')->run();
}
public function parallelRunAndMergeResults(): Result
{
$result = $this->parallelRun();
$this->parallelMergeResults();
return $result;
}
}
Details
Codeception version: ^4.1
PHP Version: 7.4
Operating System: Linux
Installation type: Composer
List of installed packages (composer show)
aws/aws-sdk-php 3.134.3 AWS SDK for PHP - Use Amazon Web Services in your PHP project
barryvdh/laravel-ide-helper v2.6.7 Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.
barryvdh/reflection-docblock v2.0.6
beberlei/assert v3.2.7 Thin assertion library for input validation in business models.
behat/gherkin v4.6.2 Gherkin DSL parser for PHP 5.3
brianium/habitat v1.0.0 A dependable php environment
brianium/paratest 4.0.0 Parallel testing for PHP
clue/stream-filter v1.4.1 A simple and modern approach to stream filtering in PHP
codeception/codeception 4.1.4 BDD-style testing framework
codeception/lib-asserts 1.11.0 Assertion methods used by Codeception core and Asserts module
codeception/lib-innerbrowser 1.3.1 Parent library for all Codeception framework modules and PhpBrowser
codeception/module-db 1.0.1 WebDriver module for Codeception
codeception/module-laravel5 1.1.0 Codeception module for Laravel 5 framework
codeception/module-webdriver 1.0.7 WebDriver module for Codeception
codeception/phpunit-wrapper 9.0.1 PHPUnit classes used by Codeception
codeception/robo-paracept 0.4.2 Codeception Parallel Execution Tasks via Robo Task Runner
codeception/stub 3.6.1 Flexible Stub wrapper for PHPUnit's Mock Builder
composer/ca-bundle 1.2.6 Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.
composer/composer 1.10.1 Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.
composer/semver 1.5.1 Semver library that offers utilities, version constraint parsing and validation.
composer/spdx-licenses 1.5.3 SPDX licenses list and validation library.
composer/xdebug-handler 1.4.1 Restarts a process without Xdebug.
consolidation/annotated-command 4.1.0 Initialize Symfony Console commands from annotated command class methods.
consolidation/config 1.2.1 Provide configuration services for a commandline tool.
consolidation/log 2.0.0 Improved Psr-3 / Psr\Log logger based on Symfony Console components.
consolidation/output-formatters 4.1.0 Format text by applying transformations provided by plug-in formatters.
consolidation/robo 1.4.12 Modern task runner
consolidation/self-update 1.1.5 Provides a self:update command for Symfony Console applications.
container-interop/container-interop 1.2.0 Promoting the interoperability of container objects (DIC, SL, etc.)
davejamesmiller/laravel-breadcrumbs 5.3.2 A simple Laravel-style way to create breadcrumbs.
dflydev/dot-access-data v1.1.0 Given a deep data structure, access data by dot notation.
doctrine/cache 1.10.0 PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and ...
doctrine/dbal v2.10.1 Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.
doctrine/event-manager 1.1.0 The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.
doctrine/inflector 1.3.1 Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator 1.3.0 A small, lightweight utility to instantiate objects in PHP without invoking their constructors
doctrine/lexer 1.2.0 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
dragonmantank/cron-expression v2.3.0 CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due
egulias/email-validator 2.1.17 A library for validating emails against several RFCs
facade/ignition-contracts 1.0.0 Solution contracts for Ignition
filp/whoops 2.7.1 php error handling for cool kids
fzaninotto/faker v1.9.1 Faker is a PHP library that generates fake data for you.
grasmash/expander 1.0.0 Expands internal property references in PHP arrays file.
grasmash/yaml-expander 1.4.0 Expands internal property references in a yaml file.
guzzlehttp/guzzle 6.5.2 Guzzle is a PHP HTTP client library
guzzlehttp/promises v1.3.1 Guzzle promises library
guzzlehttp/psr7 1.6.1 PSR-7 message implementation that also provides common utility methods
hamcrest/hamcrest-php v2.0.0 This is the PHP port of Hamcrest Matchers
http-interop/http-factory-guzzle 1.0.0 An HTTP Factory using Guzzle PSR7
jean85/pretty-package-versions 1.2 A wrapper for ocramius/package-versions to get pretty versions strings
justinrainbow/json-schema 5.2.9 A library to validate a json schema.
laravel/framework v6.18.3 The Laravel Framework.
laravelcollective/html v6.1.0 HTML and Form Builders for the Laravel Framework
league/commonmark 1.3.3 Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)
league/container 2.4.1 A fast and intuitive dependency injection container.
league/flysystem 1.0.66 Filesystem abstraction: Many filesystems, one API.
mockery/mockery 1.3.1 Mockery is a simple yet flexible PHP mock object framework
monolog/monolog 2.0.2 Sends your logs to files, sockets, inboxes, databases and various web services
mtdowling/jmespath.php 2.5.0 Declaratively specify how to extract elements from a JSON document
myclabs/deep-copy 1.9.5 Create deep copies (clones) of your objects
nesbot/carbon 2.32.2 An API extension for DateTime that supports 281 different languages.
ocramius/package-versions 1.7.0 Composer plugin that provides efficient querying for installed package versions (no runtime IO)
opis/closure 3.5.1 A library that can be used to serialize closures (anonymous functions) and arbitrary objects.
paragonie/random_compat v9.99.99 PHP 5.x polyfill for random_bytes() and random_int() from PHP 7
phar-io/manifest 1.0.3 Component for reading phar.io manifest information from a PHP Archive (PHAR)
phar-io/version 2.0.1 Library for handling version information and constraints
php-http/client-common 2.1.0 Common HTTP Client implementations and tools for HTTPlug
php-http/discovery 1.7.4 Finds installed HTTPlug implementations and PSR-7 message factories
php-http/guzzle6-adapter v2.0.1 Guzzle 6 HTTP Adapter
php-http/httplug 2.1.0 HTTPlug, the HTTP client abstraction for PHP
php-http/message 1.8.0 HTTP Message related tools
php-http/message-factory v1.0.2 Factory interfaces for PSR-7 HTTP Message
php-http/promise v1.0.0 Promise used for asynchronous HTTP requests
php-webdriver/webdriver 1.8.2 A PHP client for Selenium WebDriver. Previously facebook/webdriver.
phpdocumentor/reflection-common 2.0.0 Common reflection classes used by phpdocumentor to reflect the code structure
phpdocumentor/reflection-docblock 5.1.0 With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a Doc...
phpdocumentor/type-resolver 1.1.0 A PSR-5 based resolver of Class names, Types and Structural Element Names
phpoption/phpoption 1.7.3 Option Type for PHP
phpspec/prophecy v1.10.3 Highly opinionated mocking framework for PHP 5.3+
phpunit/php-code-coverage 8.0.1 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator 3.0.0 FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker 3.0.0 Invoke callables with a timeout
phpunit/php-text-template 2.0.0 Simple template engine.
phpunit/php-timer 3.0.0 Utility class for timing
phpunit/php-token-stream 4.0.0 Wrapper around PHP's tokenizer extension.
phpunit/phpunit 9.1.1 The PHP Unit Testing framework.
predis/predis v1.1.1 Flexible and feature-complete Redis client for PHP and HHVM
psr/container 1.0.0 Common Container Interface (PHP FIG PSR-11)
psr/http-client 1.0.0 Common interface for HTTP clients
psr/http-factory 1.0.1 Common interfaces for PSR-7 HTTP message factories
psr/http-message 1.0.1 Common interface for HTTP messages
psr/log 1.1.3 Common interface for logging libraries
psr/simple-cache 1.0.1 Common interfaces for simple caching
ralouphie/getallheaders 3.0.3 A polyfill for getallheaders.
ramsey/uuid 3.9.3 Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
roave/security-advisories dev-master 0f73cf4 Prevents installation of composer packages with known security vulnerabilities: no API, simply require it
sebastian/code-unit 1.0.0 Collection of value objects that represent the PHP code units
sebastian/code-unit-reverse-lookup 2.0.0 Looks up which function or method a line of code belongs to
sebastian/comparator 4.0.0 Provides the functionality to compare PHP values for equality
sebastian/diff 4.0.0 Diff implementation
sebastian/environment 5.0.2 Provides functionality to handle HHVM/PHP environments
sebastian/exporter 4.0.0 Provides the functionality to export PHP variables for visualization
sebastian/global-state 4.0.0 Snapshotting of global state
sebastian/object-enumerator 4.0.0 Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector 2.0.0 Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context 4.0.0 Provides functionality to recursively process PHP variables
sebastian/resource-operations 3.0.0 Provides a list of PHP built-in functions that operate on resources
sebastian/type 2.0.0 Collection of value objects that represent the types of the PHP type system
sebastian/version 3.0.0 Library that helps with managing the version number of Git-hosted PHP projects
seld/jsonlint 1.7.2 JSON Linter
seld/phar-utils 1.1.0 PHAR file format utilities, for when PHP phars you up
sentry/sdk 2.1.0 This is a metapackage shipping sentry/sentry with a recommended http client.
sentry/sentry 2.3.2 A PHP SDK for Sentry (http://sentry.io)
sentry/sentry-laravel 1.7.1 Laravel SDK for Sentry (https://sentry.io)
swiftmailer/swiftmailer v6.2.3 Swiftmailer, free feature-rich PHP mailer
symfony/browser-kit v5.0.7 Symfony BrowserKit Component
symfony/console v4.4.7 Symfony Console Component
symfony/css-selector v5.0.7 Symfony CssSelector Component
symfony/debug v4.4.7 Symfony Debug Component
symfony/dom-crawler v5.0.7 Symfony DomCrawler Component
symfony/error-handler v4.4.7 Symfony ErrorHandler Component
symfony/event-dispatcher v4.4.7 Symfony EventDispatcher Component
symfony/event-dispatcher-contracts v1.1.7 Generic abstractions related to dispatching event
symfony/filesystem v4.4.7 Symfony Filesystem Component
symfony/finder v4.4.7 Symfony Finder Component
symfony/http-foundation v4.4.7 Symfony HttpFoundation Component
symfony/http-kernel v4.4.7 Symfony HttpKernel Component
symfony/mime v5.0.7 A library to manipulate MIME messages
symfony/options-resolver v5.0.7 Symfony OptionsResolver Component
symfony/polyfill-ctype v1.15.0 Symfony polyfill for ctype functions
symfony/polyfill-iconv v1.15.0 Symfony polyfill for the Iconv extension
symfony/polyfill-intl-idn v1.15.0 Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
symfony/polyfill-mbstring v1.15.0 Symfony polyfill for the Mbstring extension
symfony/polyfill-php72 v1.15.0 Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions
symfony/polyfill-php73 v1.15.0 Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
symfony/polyfill-uuid v1.15.0 Symfony polyfill for uuid functions
symfony/process v4.4.7 Symfony Process Component
symfony/routing v4.4.7 Symfony Routing Component
symfony/service-contracts v2.0.1 Generic abstractions related to writing services
symfony/translation v4.4.7 Symfony Translation Component
symfony/translation-contracts v2.0.1 Generic abstractions related to translation
symfony/var-dumper v4.4.7 Symfony mechanism for exploring and dumping PHP variables
symfony/yaml v4.4.7 Symfony Yaml Component
theseer/tokenizer 1.1.3 A small library for converting tokenized PHP source code into XML and potentially other formats
tijsverkoyen/css-to-inline-styles 2.2.2 CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when...
tomko/common2 1.3.10 Common2
vlucas/phpdotenv v3.6.2 Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.
webmozart/assert 1.7.0 Assertions to validate method input/output with nice error messages.
What are you trying to achieve?
I trying to run acceptance tests on TeamCity using Robo Parallel.
What do you get instead?
Every test has assertions="0" time="0.000000" in XML report, but in main report there is information:
Details
Codeception version: ^4.1
PHP Version: 7.4
Operating System: Linux
Installation type: Composer
List of installed packages (
composer show
)Suite configuration: