Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Codeception tests ran with Robo Parallel has errors 0 and timeout 0.000000 in single test but in main raport all tests has errors #51

Open
michalper opened this issue Apr 14, 2020 · 0 comments

Comments

@michalper
Copy link

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:

<testsuite name="acceptance" tests="12" assertions="0" errors="12" failures="0" skipped="0" time="0.000000">

Provide console output if related. Use -vvv mode for more details.

  Starting: /usr/bin/php vendor/bin/robo -vvv parallel:run
07:00:34
  in directory: /opt/teamcity/buildAgent/work/28e4ceac98318065
07:00:34
   [ParallelExec] /opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_1 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_1.xml
07:00:34
   [ParallelExec] /opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_2 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_2.xml
07:00:34
   [ParallelExec] /opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_3 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_3.xml
07:00:34
   [ParallelExec] /opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_4 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_4.xml
07:00:34
   [ParallelExec] /opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_5 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_5.xml
07:00:43
   [ParallelExec]  '/opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_1 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_1.xml' exited with code 255 
07:00:43
  '/opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_2 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_2.xml' exited with code 1 
07:00:43
  '/opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_3 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_3.xml' exited with code 1 
07:00:43
  '/opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_4 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_4.xml' exited with code 1 
07:00:43
  '/opt/teamcity/buildAgent/work/28e4ceac98318065/vendor/bin/codecept run acceptance --group paracept_5 --debug -c /opt/teamcity/buildAgent/work/28e4ceac98318065/codeception.yml --xml /opt/teamcity/buildAgent/work/28e4ceac98318065/tests/_output/result_5.xml' exited with code 1 
07:00:43
    Time 8.171s
07:00:43
   [ParallelExec]  Exit code 255  Time 8.171s
07:00:43
  Process exited with code 255
07:00:43
  Process exited with code 255 (Step: Acceptance tests run parallel (Command Line))
<testsuites>
<testsuite name="acceptance" tests="12" assertions="0" errors="12" failures="0" skipped="0" time="0.000000">
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesCreateCest.php" name="createClientWebsite" class="Tests\Acceptance\ClientsWebsites\ClientsWebsitesCreateCest" feature="create client website" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesDeleteCest.php" name="deleteClientWebsite" class="Tests\Acceptance\Clients\ClientsWebsitesDeleteCest" feature="delete client website" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesSearchCest.php" name="searchUsingClientId" class="Tests\Acceptance\ClientsWebsites\ClientsWebsitesSearchCest" feature="Search using client_id select" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesSearchCest.php" name="searchUsingProductId" class="Tests\Acceptance\ClientsWebsites\ClientsWebsitesSearchCest" feature="Search using product_id select" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesSearchCest.php" name="searchUsingWebsiteUrl" class="Tests\Acceptance\ClientsWebsites\ClientsWebsitesSearchCest" feature="Search using website_url input" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/ClientsWebsites/ClientsWebsitesSearchCest.php" name="searchUsingExpirationDate" class="Tests\Acceptance\ClientsWebsites\ClientsWebsitesSearchCest" feature="Search using website_url input" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesCreateCest.php" name="createLanguage" class="Tests\Acceptance\Countries\CountriesCreateCest" feature="create language" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesDeleteCest.php" name="deleteCountry" class="Tests\Acceptance\Countries\CountriesDeleteCest" feature="delete country" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesEditCest.php" name="editCountry" class="Tests\Acceptance\Countries\CountriesEditCest" feature="edit country" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesSearchCest.php" name="seeLanguages" class="Tests\Acceptance\Countries\CountriesSearchCest" feature="See list of countries" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesSearchCest.php" name="searchUsingName" class="Tests\Acceptance\Countries\CountriesSearchCest" feature="Search using name input" assertions="0" time="0.000000"/>
<testcase file="/opt/teamcity/buildAgent/work/28e4ceac98318065/tests/acceptance/Countries/CountriesSearchCest.php" name="searchUsingContinent" class="Tests\Acceptance\Countries\CountriesSearchCest" feature="Search using continent_id select" assertions="0" time="0.000000"/>
</testsuite>
</testsuites>

Provide test source code if related

<?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.
  • Suite configuration:
paths:
  tests: tests
  output: tests/_output
  data: tests/_data
  support: tests/_support
  envs: tests/_envs
actor_suffix: Tester
extensions:
  enabled:
    - Codeception\Extension\RunFailed
groups:
  paracept_*: tests/_data/paracept_*
actor: AcceptanceTester
modules:
    enabled:
        - WebDriver:
           url: 'http://ci-office.statscore.com/'
           window_size: false
           log_js_errors: true
           port: 4444
           browser: chrome
           capabilities:
               chromeOptions:
                  args: ["--window-size=1600,900", "--headless"]
        - \Helper\Acceptance
        - Db
        - DbHelper
        - Laravel5:
            part: ORM
    config:
        Db:
          dsn: 'mysql:host=localhost;dbname=head'
          user: ''
          password: ''
          populate: false
          cleanup: false
extensions:
    enabled:
        - Codeception\Extension\RunProcess:
            0: exec docker run --net=host selenium/standalone-chrome
            sleep: 7 # wait 7 second for processes to boot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant