akimsir/junit-reports

There is no license information available for the latest version (dev-master) of this package.

Manager junit tests reports for PHP

dev-master 2020-12-07 05:21 UTC

This package is auto-updated.

Last update: 2025-07-07 14:53:39 UTC


README

Php manager junit tests reports

Useful case

codeception.dist.yml:

groups:
    rerunfailed: Tests/_output/rerunfailed

Execute all tests:

# produce all_results.xml
vendor/bin/codecept run

Then rerun only failed tests and merge with all results

$manager = new \JunitReports\XmlManager();

// get failed tests
$failedTests = $manager->getFailedTests('all_results.xml', __DIR__ . '/');

// rerun only failed
$rerunFailedFile = 'Tests/_output/rerunfailed';
file_put_contents($rerunFailedFile, implode(PHP_EOL, $failedTests));

Execute only failed:

# produce rerunfailed.xml
vendor/bin/codecept run -g rerunfailed

Then merge:

$this->parallelRun(['rerunfailed' => []], 'Rerun failed tests');

// merge results with replace 
$manager->mergeWithReplace('all_results.xml', 'rerunfailed.xml');

Run with Docker

docker pull akimsir/junit-reports

docker run -ti --rm -v /path/to/results.xml:/project/results.xml akimsir/junit-reports "php run.php getFailedTestCasesAsJson /project/results.xml"

Result is the list of failed tests with parameters:

[
    {
        "file": "/code/Tests/functional/Backend/VerifiedCest.php", 
        "name": "acceptRequest", 
        "class": "Tests\\Functional\\Backend\\VerifiedCest", 
        "feature": "Одобрить заявку для компании", 
        "assertions": 17, 
        "time": 28.493741
    }
]