From 94cef989d34d0b2d7c40e1482159655ec0c6a3d4 Mon Sep 17 00:00:00 2001 From: Fabio Ivona Date: Sun, 15 Jan 2023 10:41:49 +0100 Subject: [PATCH 01/63] enable windows tests --- .github/workflows/tests.yml | 2 +- src/Logging/TeamCity/Converter.php | 2 +- src/Support/Backtrace.php | 4 +++- tests/.snapshots/Failure.php.inc | 4 ++-- tests/.snapshots/SuccessOnly.php.inc | 4 ++-- tests/Visual/TeamCity.php | 15 +++++++++------ 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d45b90ee..e8733b0f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,7 +7,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] # "windows-latest" is waiting for https://github.com/pestphp/pest/issues/638 + os: [ubuntu-latest, macos-latest, windows-latest] php: ['8.1', '8.2'] dependency-version: [prefer-lowest, prefer-stable] parallel: ['', '--parallel'] diff --git a/src/Logging/TeamCity/Converter.php b/src/Logging/TeamCity/Converter.php index 31495162..c0d91d41 100644 --- a/src/Logging/TeamCity/Converter.php +++ b/src/Logging/TeamCity/Converter.php @@ -175,7 +175,7 @@ final class Converter private function toRelativePath(string $path): string { // Remove cwd from the path. - return str_replace("$this->rootPath/", '', $path); + return str_replace("$this->rootPath".DIRECTORY_SEPARATOR, '', $path); } /** diff --git a/src/Support/Backtrace.php b/src/Support/Backtrace.php index 5077fb5a..78d7cfc7 100644 --- a/src/Support/Backtrace.php +++ b/src/Support/Backtrace.php @@ -54,7 +54,9 @@ final class Backtrace foreach (debug_backtrace(self::BACKTRACE_OPTIONS) as $trace) { assert(array_key_exists(self::FILE, $trace)); - if (Str::endsWith($trace['file'], 'Bootstrappers/BootFiles.php') || Str::endsWith($trace[self::FILE], 'overrides/Runner/TestSuiteLoader.php')) { + $traceFile = str_replace(DIRECTORY_SEPARATOR, '/', $trace[self::FILE]); + + if (Str::endsWith($traceFile, 'Bootstrappers/BootFiles.php') || Str::endsWith($traceFile, 'overrides/Runner/TestSuiteLoader.php')) { break; } diff --git a/tests/.snapshots/Failure.php.inc b/tests/.snapshots/Failure.php.inc index 5a422a49..01046cc7 100644 --- a/tests/.snapshots/Failure.php.inc +++ b/tests/.snapshots/Failure.php.inc @@ -1,4 +1,4 @@ -##teamcity[testSuiteStarted name='Tests\tests\Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] +##teamcity[testSuiteStarted name='Tests/tests/Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] ##teamcity[testStarted name='it can fail with comparison' locationHint='pest_qn://tests/.tests/Failure.php::it can fail with comparison' flowId='1234'] ##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:312|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:106|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] ##teamcity[testFinished name='it can fail with comparison' duration='100000' flowId='1234'] @@ -17,7 +17,7 @@ ##teamcity[testStarted name='build this one.' locationHint='pest_qn://tests/.tests/Failure.php::build this one.' flowId='1234'] ##teamcity[testIgnored name='build this one.' message='This test was ignored.' details='' flowId='1234'] ##teamcity[testFinished name='build this one.' duration='100000' flowId='1234'] -##teamcity[testSuiteFinished name='Tests\tests\Failure' flowId='1234'] +##teamcity[testSuiteFinished name='Tests/tests/Failure' flowId='1234'] Tests: 2 failed, 1 risky, 2 todos, 1 skipped (2 assertions) Duration: 1.00s diff --git a/tests/.snapshots/SuccessOnly.php.inc b/tests/.snapshots/SuccessOnly.php.inc index cdcb71a9..21e8a362 100644 --- a/tests/.snapshots/SuccessOnly.php.inc +++ b/tests/.snapshots/SuccessOnly.php.inc @@ -1,9 +1,9 @@ -##teamcity[testSuiteStarted name='Tests\tests\SuccessOnly' locationHint='file://tests/.tests/SuccessOnly.php' flowId='1234'] +##teamcity[testSuiteStarted name='Tests/tests/SuccessOnly' locationHint='file://tests/.tests/SuccessOnly.php' flowId='1234'] ##teamcity[testStarted name='it can pass with comparison' locationHint='pest_qn://tests/.tests/SuccessOnly.php::it can pass with comparison' flowId='1234'] ##teamcity[testFinished name='it can pass with comparison' duration='100000' flowId='1234'] ##teamcity[testStarted name='can also pass' locationHint='pest_qn://tests/.tests/SuccessOnly.php::can also pass' flowId='1234'] ##teamcity[testFinished name='can also pass' duration='100000' flowId='1234'] -##teamcity[testSuiteFinished name='Tests\tests\SuccessOnly' flowId='1234'] +##teamcity[testSuiteFinished name='Tests/tests/SuccessOnly' flowId='1234'] Tests: 2 passed (2 assertions) Duration: 1.00s diff --git a/tests/Visual/TeamCity.php b/tests/Visual/TeamCity.php index 0ea3bc08..c02ee21e 100644 --- a/tests/Visual/TeamCity.php +++ b/tests/Visual/TeamCity.php @@ -1,5 +1,12 @@ toEqual(file_get_contents($snapshot)); + expect(normalize_windows_os_output($output()))->toEqual(file_get_contents($snapshot)); } })->with([ 'Failure.php', From c45a3034511d29d887621ee2e451a7112e6dd378 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 21 Jan 2023 01:36:36 +0000 Subject: [PATCH 02/63] chore: removes unused code --- phpstan.neon | 1 - src/Support/Printer.php | 62 ----------------------------------------- 2 files changed, 63 deletions(-) delete mode 100644 src/Support/Printer.php diff --git a/phpstan.neon b/phpstan.neon index e74b4290..cb50f844 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -12,7 +12,6 @@ parameters: reportUnmatchedIgnoredErrors: true ignoreErrors: - - '#Cannot instantiate interface PHPUnit\\Util\\Exception#' - "#with a nullable type declaration#" - "#type mixed is not subtype of native#" - "#is not allowed to extend#" diff --git a/src/Support/Printer.php b/src/Support/Printer.php deleted file mode 100644 index 02f74d2f..00000000 --- a/src/Support/Printer.php +++ /dev/null @@ -1,62 +0,0 @@ -stream = fsockopen($tmp[0], (int) $tmp[1]); - $this->isOpen = true; - - return; - } - - $this->isPhpStream = str_starts_with($out, 'php://'); - - if (! $this->isPhpStream && ! Filesystem::createDirectory(dirname($out))) { - throw new Exception(sprintf('Directory "%s" was not created', dirname($out))); - } - - $this->stream = fopen($out, 'wb'); - $this->isOpen = true; - } - - final public function print(string $buffer): void - { - assert($this->isOpen); - assert($this->stream !== false); - - // @phpstan-ignore-next-line - fwrite($this->stream, $buffer); - } - - final public function flush(): void - { - if ($this->isOpen && $this->isPhpStream && $this->stream !== false) { - // @phpstan-ignore-next-line - fclose($this->stream); - - $this->isOpen = false; - } - } -} From 48caaed58c4ef663147cf6cc4d1a39631de70c66 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 21 Jan 2023 01:36:44 +0000 Subject: [PATCH 03/63] tests: updates snapshots --- tests/.snapshots/help-command.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/.snapshots/help-command.txt b/tests/.snapshots/help-command.txt index b291ec65..4327381e 100644 --- a/tests/.snapshots/help-command.txt +++ b/tests/.snapshots/help-command.txt @@ -49,7 +49,6 @@ --fail-on-risky .............................. Treat risky tests as failures --fail-on-skipped .......................... Treat skipped tests as failures --fail-on-warning .................... Treat tests with warnings as failures - --repeat ...................................... Runs the test(s) repeatedly --cache-result ............................ Write test results to cache file --do-not-cache-result .............. Do not write test results to cache file --order-by Run tests in order: default|defects|duration|no-depends|random|reverse|size @@ -78,7 +77,6 @@ --log-teamcity .............. Log test execution in TeamCity format to file --testdox-html ................. Write documentation in HTML format to file --testdox-text ................. Write documentation in Text format to file - --testdox-xml ................... Write documentation in XML format to file --log-events-text ..................... Stream events as plain text to file --log-events-verbose-text Stream events as plain text to file (with telemetry information) --no-logging .................................. Ignore logging configuration From b702e0c084f6d98cccfd39eb9bafc9de55c46fa2 Mon Sep 17 00:00:00 2001 From: luke Date: Sat, 28 Jan 2023 20:03:55 +0000 Subject: [PATCH 04/63] Adds Docker to allow users to get the project up and running quickly. --- CONTRIBUTING.md | 19 +++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ docker/Dockerfile | 19 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4037f219..ea3fc05f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,3 +54,22 @@ Integration tests: ```bash composer test:integration ``` + +## Simplified setup using Docker + +If you have Docker installed, you can quickly get all dependencies for Pest in place using +our Docker files. Assuming you have the repository cloned, you may run the following +commands: + +1. `docker compose build` to build the Docker image +2. `docker compose run --rm composer install` to install Composer dependencies +3. `docker compose run --rm composer test` to run the project tests and analysis tools + +If you want to check things work against a specific version of PHP, you may include +the `PHP` build argument when building the image: + +```bash +docker compose build --build-arg PHP=8.2 +``` + +The default PHP version will always be the lowest version of PHP supported by Pest. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..70b75de2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.8" + +services: + php: + build: + context: ./docker + volumes: + - .:/var/www/html + composer: + build: + context: ./docker + volumes: + - .:/var/www/html + entrypoint: ["composer"] diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..61334034 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,19 @@ +ARG PHP=8.1 +FROM php:${PHP}-cli-alpine + +RUN apk update \ + && apk add zip libzip-dev icu-dev + +RUN docker-php-ext-configure zip +RUN docker-php-ext-install zip +RUN docker-php-ext-enable zip + +RUN docker-php-ext-configure intl +RUN docker-php-ext-install intl +RUN docker-php-ext-enable intl + +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +WORKDIR /var/www/html + +ENTRYPOINT ["php"] From 6e3d940c8c5c589faacfd9a095ec87f68b5c11bc Mon Sep 17 00:00:00 2001 From: luke Date: Sat, 28 Jan 2023 20:05:28 +0000 Subject: [PATCH 05/63] Adds Docker to allow users to get the project up and running quickly. --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitattributes b/.gitattributes index c6e004ff..23b22c3c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ /art export-ignore +/docker export-ignore /docs export-ignore /tests export-ignore /scripts export-ignore @@ -11,5 +12,6 @@ phpstan.neon export-ignore /phpunit.xml export-ignore CHANGELOG.md export-ignore CONTRIBUTING.md export-ignore +docker-compose.yml export-ignore README.md export-ignore From 60358461c4be748f7106ae4f318dfd33ce91f1f8 Mon Sep 17 00:00:00 2001 From: Owen Voke Date: Sun, 29 Jan 2023 12:33:25 +0000 Subject: [PATCH 06/63] feat: add support for `toHaveMethod` and `toHaveMethods` --- src/Mixins/Expectation.php | 30 +++++++++++++++++++++++++ tests/.snapshots/Failure.php.inc | 2 +- tests/.snapshots/success.txt | 14 +++++++++++- tests/Features/Expect/toHaveMethod.php | 28 +++++++++++++++++++++++ tests/Features/Expect/toHaveMethods.php | 30 +++++++++++++++++++++++++ 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 tests/Features/Expect/toHaveMethod.php create mode 100644 tests/Features/Expect/toHaveMethods.php diff --git a/src/Mixins/Expectation.php b/src/Mixins/Expectation.php index 886ffab2..afec5ea0 100644 --- a/src/Mixins/Expectation.php +++ b/src/Mixins/Expectation.php @@ -302,6 +302,36 @@ final class Expectation return $this; } + /** + * Asserts that the value has the method $name. + * + * @return self + */ + public function toHaveMethod(string $name, string $message = ''): self + { + $this->toBeObject(); + + // @phpstan-ignore-next-line + Assert::assertTrue(method_exists($this->value, $name), $message); + + return $this; + } + + /** + * Asserts that the value has the provided methods $names. + * + * @param iterable $names + * @return self + */ + public function toHaveMethods(iterable $names, string $message = ''): self + { + foreach ($names as $name) { + $this->toHaveMethod($name, message: $message); + } + + return $this; + } + /** * Asserts that two variables have the same value. * diff --git a/tests/.snapshots/Failure.php.inc b/tests/.snapshots/Failure.php.inc index 01046cc7..51b54578 100644 --- a/tests/.snapshots/Failure.php.inc +++ b/tests/.snapshots/Failure.php.inc @@ -1,6 +1,6 @@ ##teamcity[testSuiteStarted name='Tests/tests/Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] ##teamcity[testStarted name='it can fail with comparison' locationHint='pest_qn://tests/.tests/Failure.php::it can fail with comparison' flowId='1234'] -##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:312|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:106|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] +##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:342|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:106|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] ##teamcity[testFinished name='it can fail with comparison' duration='100000' flowId='1234'] ##teamcity[testStarted name='it can be ignored because of no assertions' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because of no assertions' flowId='1234'] ##teamcity[testIgnored name='it can be ignored because of no assertions' message='This test did not perform any assertions' details='' flowId='1234'] diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index e80dff6b..986c03c4 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -556,6 +556,18 @@ ✓ it fails ✓ it fails with message + PASS Tests\Features\Expect\toHaveMethod + ✓ pass + ✓ failures + ✓ failures with message + ✓ not failures + + PASS Tests\Features\Expect\toHaveMethods + ✓ pass + ✓ failures + ✓ failures with custom message + ✓ not failures + PASS Tests\Features\Expect\toHaveProperties ✓ pass ✓ failures @@ -902,4 +914,4 @@ PASS Tests\Visual\Version ✓ visual snapshot of help command output - Tests: 4 incomplete, 4 todos, 18 skipped, 625 passed (1512 assertions) \ No newline at end of file + Tests: 4 incomplete, 4 todos, 18 skipped, 633 passed (1552 assertions) \ No newline at end of file diff --git a/tests/Features/Expect/toHaveMethod.php b/tests/Features/Expect/toHaveMethod.php new file mode 100644 index 00000000..421c1ddd --- /dev/null +++ b/tests/Features/Expect/toHaveMethod.php @@ -0,0 +1,28 @@ +toHaveMethod('foo') + ->and($object)->toHaveMethod('foo') + ->and($object)->not->toHaveMethod('fooNull'); +}); + +test('failures', function () use ($object) { + expect($object)->toHaveMethod('bar'); +})->throws(ExpectationFailedException::class); + +test('failures with message', function () use ($object) { + expect($object)->toHaveMethod(name: 'bar', message: 'oh no!'); +})->throws(ExpectationFailedException::class, 'oh no!'); + +test('not failures', function () use ($object) { + expect($object)->not->toHaveMethod('foo'); +})->throws(ExpectationFailedException::class); diff --git a/tests/Features/Expect/toHaveMethods.php b/tests/Features/Expect/toHaveMethods.php new file mode 100644 index 00000000..a02a3275 --- /dev/null +++ b/tests/Features/Expect/toHaveMethods.php @@ -0,0 +1,30 @@ +toHaveMethods(['foo', 'bar']); +}); + +test('failures', function () use ($object) { + expect($object)->toHaveMethods(['foo', 'bar', 'baz']); +})->throws(ExpectationFailedException::class); + +test('failures with custom message', function () use ($object) { + expect($object)->toHaveMethods(['foo', 'bar', 'baz'], 'oh no!'); +})->throws(ExpectationFailedException::class, 'oh no!'); + +test('not failures', function () use ($object) { + expect($object)->not->toHaveMethods(['foo', 'bar']); +})->throws(ExpectationFailedException::class); From fed9776f9bbb9959d1ec4d51eca0b21860eb9901 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Wed, 1 Feb 2023 19:23:15 +0000 Subject: [PATCH 07/63] chore: updates dev dependencies --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index df90e538..de13e595 100644 --- a/composer.json +++ b/composer.json @@ -45,7 +45,7 @@ "require-dev": { "pestphp/pest-dev-tools": "^2.2", "pestphp/pest-plugin-arch": "^2.0.0", - "symfony/process": "^6.2.0" + "symfony/process": "^6.2.5" }, "minimum-stability": "dev", "prefer-stable": true, From 975f1bd9fab59b21cc1525f044a497611df23f2a Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Fri, 3 Feb 2023 10:47:07 +0000 Subject: [PATCH 08/63] chore: uses stable version of PHPUnit v10 --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index de13e595..63df5813 100644 --- a/composer.json +++ b/composer.json @@ -19,9 +19,9 @@ "require": { "php": "^8.1.0", "nunomaduro/collision": "^7.0.0", - "nunomaduro/termwind": "^1.15", + "nunomaduro/termwind": "^1.15.0", "pestphp/pest-plugin": "^2.0.0", - "phpunit/phpunit": "10.0.x-dev" + "phpunit/phpunit": "^10.0.0" }, "version": "2.x-dev", "autoload": { @@ -43,7 +43,7 @@ ] }, "require-dev": { - "pestphp/pest-dev-tools": "^2.2", + "pestphp/pest-dev-tools": "^2.2.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" }, From b1545f270fcbc9e83ca4fa10e9b854f92d188a3c Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 4 Feb 2023 11:58:02 +0000 Subject: [PATCH 09/63] chore: updates dependencies --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 63df5813..ef3fa750 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "nunomaduro/collision": "^7.0.0", "nunomaduro/termwind": "^1.15.0", "pestphp/pest-plugin": "^2.0.0", - "phpunit/phpunit": "^10.0.0" + "phpunit/phpunit": "^10.0.2" }, "version": "2.x-dev", "autoload": { @@ -43,7 +43,7 @@ ] }, "require-dev": { - "pestphp/pest-dev-tools": "^2.2.0", + "pestphp/pest-dev-tools": "^2.3.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" }, From 8a2aeff9a0af3d976e0a0e639f3237b4711e1311 Mon Sep 17 00:00:00 2001 From: Fabio Ivona Date: Mon, 6 Feb 2023 09:13:07 +0100 Subject: [PATCH 10/63] add scheduled workflow runs --- .github/workflows/static.yml | 6 +++++- .github/workflows/tests.yml | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 0a8089f6..ed46ad6e 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -1,6 +1,10 @@ name: Static Analysis -on: ['push', 'pull_request'] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * *' jobs: static: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e8733b0f..efc2aa5d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,6 +1,11 @@ name: Tests -on: ['push', 'pull_request'] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * *' + jobs: ci: From fe763c1dc7f3c0cb3ea5deb344148476dc1112bc Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Mon, 6 Feb 2023 18:09:07 +0000 Subject: [PATCH 11/63] fix: make datasets static --- src/Factories/TestCaseMethodFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Factories/TestCaseMethodFactory.php b/src/Factories/TestCaseMethodFactory.php index 8e2d87fb..1f338db6 100644 --- a/src/Factories/TestCaseMethodFactory.php +++ b/src/Factories/TestCaseMethodFactory.php @@ -188,7 +188,7 @@ final class TestCaseMethodFactory return << Date: Mon, 6 Feb 2023 18:09:15 +0000 Subject: [PATCH 12/63] chore: bumps phpunit --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ef3fa750..be2bdd80 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "nunomaduro/collision": "^7.0.0", "nunomaduro/termwind": "^1.15.0", "pestphp/pest-plugin": "^2.0.0", - "phpunit/phpunit": "^10.0.2" + "phpunit/phpunit": "^10.0.4" }, "version": "2.x-dev", "autoload": { From 2cdcf7f3e36893d7e4d76457f88bf0d8cd2df7fa Mon Sep 17 00:00:00 2001 From: Wendell Adriel Date: Wed, 8 Feb 2023 12:05:30 +0000 Subject: [PATCH 13/63] Add Makefile to make it easier for developers to run docker commands --- .gitattributes | 1 + CONTRIBUTING.md | 8 ++++---- Makefile | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 Makefile diff --git a/.gitattributes b/.gitattributes index 23b22c3c..3015580b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,5 +13,6 @@ phpstan.neon export-ignore CHANGELOG.md export-ignore CONTRIBUTING.md export-ignore docker-compose.yml export-ignore +Makefile export-ignore README.md export-ignore diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea3fc05f..4f24ec41 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,15 +61,15 @@ If you have Docker installed, you can quickly get all dependencies for Pest in p our Docker files. Assuming you have the repository cloned, you may run the following commands: -1. `docker compose build` to build the Docker image -2. `docker compose run --rm composer install` to install Composer dependencies -3. `docker compose run --rm composer test` to run the project tests and analysis tools +1. `make build` to build the Docker image +2. `make install` to install Composer dependencies +3. `make test` to run the project tests and analysis tools If you want to check things work against a specific version of PHP, you may include the `PHP` build argument when building the image: ```bash -docker compose build --build-arg PHP=8.2 +make build ARGS="--build-arg PHP=8.2" ``` The default PHP version will always be the lowest version of PHP supported by Pest. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..ec4faa84 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +# Well documented Makefiles +DEFAULT_GOAL := help +help: + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-40s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) + +build: ## Build all docker images. Specify the command e.g. via make build ARGS="--build-arg PHP=8.2" + docker compose build $(ARGS) + +##@ [Application] +install: ## Install the composer dependencies + docker compose run --rm composer install + +test: ## Run the tests + docker compose run --rm composer test From 80bea0b4b400b8460bf7b27d9156d447f7d450d6 Mon Sep 17 00:00:00 2001 From: Fabio Ivona Date: Wed, 8 Feb 2023 23:29:10 +0100 Subject: [PATCH 14/63] add missing parameter --- src/Logging/TeamCity/TeamCityLogger.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Logging/TeamCity/TeamCityLogger.php b/src/Logging/TeamCity/TeamCityLogger.php index 747d4c4e..9e5d6312 100644 --- a/src/Logging/TeamCity/TeamCityLogger.php +++ b/src/Logging/TeamCity/TeamCityLogger.php @@ -211,7 +211,7 @@ final class TeamCityLogger ); } - $style->writeRecap($state, $telemetry); + $style->writeRecap($state, $telemetry, $result); } public function output(ServiceMessage $message): void From c1663191eea6efbcc43154d0923f5767dc88f7b9 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Wed, 8 Feb 2023 23:40:22 +0000 Subject: [PATCH 15/63] chore: updates dependencies --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index be2bdd80..18b9d8b1 100644 --- a/composer.json +++ b/composer.json @@ -18,10 +18,10 @@ ], "require": { "php": "^8.1.0", - "nunomaduro/collision": "^7.0.0", - "nunomaduro/termwind": "^1.15.0", + "nunomaduro/collision": "^7.0.1", + "nunomaduro/termwind": "^1.15.1", "pestphp/pest-plugin": "^2.0.0", - "phpunit/phpunit": "^10.0.4" + "phpunit/phpunit": "^10.0.7" }, "version": "2.x-dev", "autoload": { From a8f0b96338783035943e0baff6934013930056ef Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 11 Feb 2023 02:36:28 +0000 Subject: [PATCH 16/63] chore: bumps dependencies --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 18b9d8b1..c76fa451 100644 --- a/composer.json +++ b/composer.json @@ -43,7 +43,7 @@ ] }, "require-dev": { - "pestphp/pest-dev-tools": "^2.3.0", + "pestphp/pest-dev-tools": "^2.4.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" }, From d69f61c8d3a0289cb9f5350ef35e1b1bc20cc56d Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 11 Feb 2023 16:48:06 +0000 Subject: [PATCH 17/63] refacto: `--retry` option --- .gitignore | 1 - .temp/retry.json | 1 + .temp/test-results | 1 + composer.json | 1 + phpunit.xml | 2 - src/Bootstrappers/BootSubscribers.php | 5 +- src/Factories/TestCaseMethodFactory.php | 7 -- src/Plugins/Cache.php | 37 ++++++++ src/Plugins/Retry.php | 14 +-- src/Repositories/RetryRepository.php | 91 ------------------- ...php => EnsureConfigurationIsAvailable.php} | 6 +- .../EnsureErroredTestsAreRetryable.php | 23 ----- .../EnsureFailedTestsAreRetryable.php | 23 ----- .../EnsureRetryRepositoryExists.php | 23 ----- src/TestSuite.php | 7 -- tests/.snapshots/Failure.php.inc | 4 +- tests/.snapshots/success.txt | 2 +- tests/Unit/Plugins/Retry.php | 13 ++- 18 files changed, 61 insertions(+), 200 deletions(-) create mode 100644 .temp/retry.json create mode 100644 .temp/test-results create mode 100644 src/Plugins/Cache.php delete mode 100644 src/Repositories/RetryRepository.php rename src/Subscribers/{EnsureConfigurationDefaults.php => EnsureConfigurationIsAvailable.php} (54%) delete mode 100644 src/Subscribers/EnsureErroredTestsAreRetryable.php delete mode 100644 src/Subscribers/EnsureFailedTestsAreRetryable.php delete mode 100644 src/Subscribers/EnsureRetryRepositoryExists.php diff --git a/.gitignore b/.gitignore index 235a8cff..3a11a383 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ coverage.xml /.php-cs-fixer.php .php-cs-fixer.cache .temp/coverage.php -.temp/retry.json *.swp *.swo .vscode/ diff --git a/.temp/retry.json b/.temp/retry.json new file mode 100644 index 00000000..33db9abc --- /dev/null +++ b/.temp/retry.json @@ -0,0 +1 @@ +["P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)","P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)"] \ No newline at end of file diff --git a/.temp/test-results b/.temp/test-results new file mode 100644 index 00000000..56c4841c --- /dev/null +++ b/.temp/test-results @@ -0,0 +1 @@ +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.002,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.004,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0.001,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.001,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.87,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.086,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.085,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":1.648,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.084,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.079,"P\\Tests\\Visual\\Todo::todo":0.098,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.061,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/composer.json b/composer.json index c76fa451..5417ae05 100644 --- a/composer.json +++ b/composer.json @@ -81,6 +81,7 @@ "extra": { "pest": { "plugins": [ + "Pest\\Plugins\\Cache", "Pest\\Plugins\\Coverage", "Pest\\Plugins\\Init", "Pest\\Plugins\\Environment", diff --git a/phpunit.xml b/phpunit.xml index d1b754d0..13e5b2af 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,14 +5,12 @@ beStrictAboutTestsThatDoNotTestAnything="true" beStrictAboutOutputDuringTests="true" bootstrap="vendor/autoload.php" - cacheResult="false" colors="true" failOnRisky="true" failOnWarning="true" processIsolation="false" stopOnError="false" stopOnFailure="false" - cacheDirectory=".phpunit.cache" backupStaticProperties="false" displayDetailsOnIncompleteTests="true" displayDetailsOnSkippedTests="true" diff --git a/src/Bootstrappers/BootSubscribers.php b/src/Bootstrappers/BootSubscribers.php index 8c21c35d..201afed0 100644 --- a/src/Bootstrappers/BootSubscribers.php +++ b/src/Bootstrappers/BootSubscribers.php @@ -22,10 +22,7 @@ final class BootSubscribers implements Bootstrapper */ private const SUBSCRIBERS = [ Subscribers\EnsureConfigurationIsValid::class, - Subscribers\EnsureConfigurationDefaults::class, - Subscribers\EnsureRetryRepositoryExists::class, - Subscribers\EnsureErroredTestsAreRetryable::class, - Subscribers\EnsureFailedTestsAreRetryable::class, + Subscribers\EnsureConfigurationIsAvailable::class, Subscribers\EnsureTeamCityEnabled::class, ]; diff --git a/src/Factories/TestCaseMethodFactory.php b/src/Factories/TestCaseMethodFactory.php index 1f338db6..98643d54 100644 --- a/src/Factories/TestCaseMethodFactory.php +++ b/src/Factories/TestCaseMethodFactory.php @@ -8,7 +8,6 @@ use Closure; use Pest\Contracts\AddsAnnotations; use Pest\Exceptions\ShouldNotHappen; use Pest\Factories\Concerns\HigherOrderable; -use Pest\Plugins\Retry; use Pest\Repositories\DatasetsRepository; use Pest\Support\Str; use Pest\TestSuite; @@ -129,12 +128,6 @@ final class TestCaseMethodFactory $methodName = Str::evaluable($this->description); - $retryRepository = TestSuite::getInstance()->retryRepository; - - if (Retry::$retrying && ! $retryRepository->isEmpty() && ! $retryRepository->exists(sprintf('%s::%s', $classFQN, $methodName))) { - return ''; - } - $datasetsCode = ''; $annotations = ['@test']; $attributes = []; diff --git a/src/Plugins/Cache.php b/src/Plugins/Cache.php new file mode 100644 index 00000000..a31459e6 --- /dev/null +++ b/src/Plugins/Cache.php @@ -0,0 +1,37 @@ +pushArgument( + sprintf('--cache-directory=%s', realpath(self::TEMPORARY_FOLDER)), + $arguments + ); + + return $this->pushArgument('--cache-result', $arguments); + } +} diff --git a/src/Plugins/Retry.php b/src/Plugins/Retry.php index f961018e..e87eb8e9 100644 --- a/src/Plugins/Retry.php +++ b/src/Plugins/Retry.php @@ -13,18 +13,18 @@ final class Retry implements HandlesArguments { use Concerns\HandleArguments; - /** - * Whether it should show retry or not. - */ - public static bool $retrying = false; - /** * {@inheritDoc} */ public function handleArguments(array $arguments): array { - self::$retrying = $this->hasArgument('--retry', $arguments); + if ($this->hasArgument('--retry', $arguments)) { + $arguments = $this->popArgument('--retry', $arguments); - return $this->popArgument('--retry', $arguments); + $arguments = $this->pushArgument('--order-by=defects', $arguments); + $arguments = $this->pushArgument(' --stop-on-defect', $arguments); + } + + return $arguments; } } diff --git a/src/Repositories/RetryRepository.php b/src/Repositories/RetryRepository.php deleted file mode 100644 index e2a158c2..00000000 --- a/src/Repositories/RetryRepository.php +++ /dev/null @@ -1,91 +0,0 @@ -save([...$this->all(), ...[$element]]); - } - - /** - * Clears the existing file, if any, and re-creates it. - */ - public function boot(): void - { - @unlink(self::TEMPORARY_FOLDER.'/'.$this->filename.'.json'); // @phpstan-ignore-line - - $this->save([]); - } - - /** - * Checks if there is any element. - */ - public function isEmpty(): bool - { - return $this->all() === []; - } - - /** - * Checks if the given element exists. - */ - public function exists(string $element): bool - { - return in_array($element, $this->all(), true); - } - - /** - * Gets all elements. - * - * @return array - */ - private function all(): array - { - $path = self::TEMPORARY_FOLDER.'/'.$this->filename.'.json'; - - $contents = file_exists($path) ? file_get_contents($path) : '{}'; - - assert(is_string($contents)); - - $all = json_decode($contents, true, 512, JSON_THROW_ON_ERROR); - - return is_array($all) ? $all : []; - } - - /** - * Save the given elements. - * - * @param array $elements - */ - private function save(array $elements): void - { - $contents = json_encode($elements, JSON_THROW_ON_ERROR); - - file_put_contents(self::TEMPORARY_FOLDER.'/'.$this->filename.'.json', $contents); - } -} diff --git a/src/Subscribers/EnsureConfigurationDefaults.php b/src/Subscribers/EnsureConfigurationIsAvailable.php similarity index 54% rename from src/Subscribers/EnsureConfigurationDefaults.php rename to src/Subscribers/EnsureConfigurationIsAvailable.php index ce94089d..f23ee108 100644 --- a/src/Subscribers/EnsureConfigurationDefaults.php +++ b/src/Subscribers/EnsureConfigurationIsAvailable.php @@ -4,19 +4,21 @@ declare(strict_types=1); namespace Pest\Subscribers; +use Pest\Support\Container; use PHPUnit\Event\TestRunner\Configured; use PHPUnit\Event\TestRunner\ConfiguredSubscriber; +use PHPUnit\TextUI\Configuration\Configuration; /** * @internal */ -final class EnsureConfigurationDefaults implements ConfiguredSubscriber +final class EnsureConfigurationIsAvailable implements ConfiguredSubscriber { /** * Runs the subscriber. */ public function notify(Configured $event): void { - // TODO... + Container::getInstance()->add(Configuration::class, $event->configuration()); } } diff --git a/src/Subscribers/EnsureErroredTestsAreRetryable.php b/src/Subscribers/EnsureErroredTestsAreRetryable.php deleted file mode 100644 index 6eb2661d..00000000 --- a/src/Subscribers/EnsureErroredTestsAreRetryable.php +++ /dev/null @@ -1,23 +0,0 @@ -retryRepository->add($event->test()->id()); - } -} diff --git a/src/Subscribers/EnsureFailedTestsAreRetryable.php b/src/Subscribers/EnsureFailedTestsAreRetryable.php deleted file mode 100644 index 73468723..00000000 --- a/src/Subscribers/EnsureFailedTestsAreRetryable.php +++ /dev/null @@ -1,23 +0,0 @@ -retryRepository->add($event->test()->id()); - } -} diff --git a/src/Subscribers/EnsureRetryRepositoryExists.php b/src/Subscribers/EnsureRetryRepositoryExists.php deleted file mode 100644 index 91226b0c..00000000 --- a/src/Subscribers/EnsureRetryRepositoryExists.php +++ /dev/null @@ -1,23 +0,0 @@ -retryRepository->boot(); - } -} diff --git a/src/TestSuite.php b/src/TestSuite.php index bdec4d4e..68bc842f 100644 --- a/src/TestSuite.php +++ b/src/TestSuite.php @@ -9,7 +9,6 @@ use Pest\Repositories\AfterAllRepository; use Pest\Repositories\AfterEachRepository; use Pest\Repositories\BeforeAllRepository; use Pest\Repositories\BeforeEachRepository; -use Pest\Repositories\RetryRepository; use Pest\Repositories\TestRepository; use PHPUnit\Framework\TestCase; @@ -48,11 +47,6 @@ final class TestSuite */ public AfterAllRepository $afterAll; - /** - * Holds the retry repository. - */ - public RetryRepository $retryRepository; - /** * Holds the root path. */ @@ -75,7 +69,6 @@ final class TestSuite $this->tests = new TestRepository(); $this->afterEach = new AfterEachRepository(); $this->afterAll = new AfterAllRepository(); - $this->retryRepository = new RetryRepository('retry'); $this->rootPath = (string) realpath($rootPath); } diff --git a/tests/.snapshots/Failure.php.inc b/tests/.snapshots/Failure.php.inc index 51b54578..6e04c2ba 100644 --- a/tests/.snapshots/Failure.php.inc +++ b/tests/.snapshots/Failure.php.inc @@ -1,6 +1,6 @@ ##teamcity[testSuiteStarted name='Tests/tests/Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] ##teamcity[testStarted name='it can fail with comparison' locationHint='pest_qn://tests/.tests/Failure.php::it can fail with comparison' flowId='1234'] -##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:342|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:106|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] +##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:342|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] ##teamcity[testFinished name='it can fail with comparison' duration='100000' flowId='1234'] ##teamcity[testStarted name='it can be ignored because of no assertions' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because of no assertions' flowId='1234'] ##teamcity[testIgnored name='it can be ignored because of no assertions' message='This test did not perform any assertions' details='' flowId='1234'] @@ -9,7 +9,7 @@ ##teamcity[testIgnored name='it can be ignored because it is skipped' message='This test was ignored.' details='' flowId='1234'] ##teamcity[testFinished name='it can be ignored because it is skipped' duration='100000' flowId='1234'] ##teamcity[testStarted name='it can fail' locationHint='pest_qn://tests/.tests/Failure.php::it can fail' flowId='1234'] -##teamcity[testFailed name='it can fail' message='oh noo' details='at tests/.tests/Failure.php:18|nat src/Factories/TestCaseMethodFactory.php:106|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' flowId='1234'] +##teamcity[testFailed name='it can fail' message='oh noo' details='at tests/.tests/Failure.php:18|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' flowId='1234'] ##teamcity[testFinished name='it can fail' duration='100000' flowId='1234'] ##teamcity[testStarted name='it is not done yet' locationHint='pest_qn://tests/.tests/Failure.php::it is not done yet' flowId='1234'] ##teamcity[testIgnored name='it is not done yet' message='This test was ignored.' details='' flowId='1234'] diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index 986c03c4..cce6c952 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -843,7 +843,7 @@ ✓ environment is set to Local when --ci option is not used PASS Tests\Unit\Plugins\Retry - ✓ it retries if --retry argument is used + ✓ it orders by defects and stop on defects if when --retry is used PASS Tests\Unit\Support\Backtrace ✓ it gets file name from called file diff --git a/tests/Unit/Plugins/Retry.php b/tests/Unit/Plugins/Retry.php index e0033821..a95ef62a 100644 --- a/tests/Unit/Plugins/Retry.php +++ b/tests/Unit/Plugins/Retry.php @@ -2,14 +2,13 @@ use Pest\Plugins\Retry; -beforeEach(fn () => Retry::$retrying = false); - -afterEach(fn () => Retry::$retrying = false); - -it('retries if --retry argument is used', function () { +it('orders by defects and stop on defects if when --retry is used ', function () { $retry = new Retry(); - $retry->handleArguments(['--retry']); + $arguments = $retry->handleArguments(['--retry']); - expect(Retry::$retrying)->toBeTrue(); + expect($arguments)->toBe([ + '--order-by=defects', + ' --stop-on-defect', + ]); }); From 48309931efc30309c5f60ffedd6b5e734814ad30 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 6 Feb 2023 16:43:58 +0000 Subject: [PATCH 18/63] WIP --- bin/pest-wrapper.php | 0 composer.json | 4 +- src/Plugins/Parallel.php | 74 ++++ src/Plugins/Parallel/Handlers/Laravel.php | 37 ++ src/Plugins/Parallel/Handlers/Parallel.php | 30 ++ .../Parallel/Paratest/WrapperRunner.php | 315 ++++++++++++++++++ 6 files changed, 459 insertions(+), 1 deletion(-) create mode 100644 bin/pest-wrapper.php create mode 100644 src/Plugins/Parallel.php create mode 100644 src/Plugins/Parallel/Handlers/Laravel.php create mode 100644 src/Plugins/Parallel/Handlers/Parallel.php create mode 100644 src/Plugins/Parallel/Paratest/WrapperRunner.php diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php new file mode 100644 index 00000000..e69de29b diff --git a/composer.json b/composer.json index 5417ae05..0c4e5343 100644 --- a/composer.json +++ b/composer.json @@ -43,6 +43,7 @@ ] }, "require-dev": { + "brianium/paratest": "^7.0", "pestphp/pest-dev-tools": "^2.4.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" @@ -89,7 +90,8 @@ "Pest\\Plugins\\Memory", "Pest\\Plugins\\Printer", "Pest\\Plugins\\Retry", - "Pest\\Plugins\\Version" + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Parallel" ] } } diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php new file mode 100644 index 00000000..bc2df874 --- /dev/null +++ b/src/Plugins/Parallel.php @@ -0,0 +1,74 @@ +argumentsContainParallelFlags($arguments)) { + $exitCode = $this->runTestSuiteInParallel($arguments); + exit($exitCode); + } + + $this->markTestSuiteAsParallelSubProcessIfRequired(); + + return $arguments; + } + + private function argumentsContainParallelFlags(array $arguments): bool + { + return $this->hasArgument('--parallel', $arguments) + || $this->hasArgument('-p', $arguments); + } + + private function runTestSuiteInParallel(array $arguments): int + { + if (! class_exists(ParaTestCommand::class)) { + $this->askUserToInstallParatest(); + + return 1; + } + + $filteredArguments = array_reduce( + $this->handlers, + fn($arguments, $handler) => (new $handler())->handle($arguments), + $arguments + ); + + $testSuite = TestSuite::getInstance(); + + return ParaTestCommand::applicationFactory($testSuite->rootPath)->run(new ArgvInput($filteredArguments)); + } + + private function markTestSuiteAsParallelSubProcessIfRequired(): void + { + if ((int) Arr::get($_SERVER, 'PARATEST') === 1) { + $_SERVER['PEST_PARALLEL'] = 1; + } + } + + private function askUserToInstallParatest(): void + { + Container::getInstance()->get(OutputInterface::class)->writeln([ + 'Parallel support requires ParaTest, which is not installed.', + 'Please run composer require --dev brianium/paratest to install ParaTest.', + ]); + } +} diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php new file mode 100644 index 00000000..07fcb062 --- /dev/null +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -0,0 +1,37 @@ +popArgument($value, $args); + } + } + + return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $args); + } + + private static function isALaravelApplication(): bool + { + return class_exists(\Illuminate\Foundation\Application::class) + && class_exists(\Illuminate\Testing\ParallelRunner::class) + && !class_exists(\Orchestra\Testbench\TestCase::class); + } +} diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php new file mode 100644 index 00000000..0e88c3bb --- /dev/null +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -0,0 +1,30 @@ + $this->popArgument($arg, $args), $args); + + return $this->pushArgument('--runner=' . WrapperRunner::class, $args); + } +} diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php new file mode 100644 index 00000000..55873d8c --- /dev/null +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -0,0 +1,315 @@ + */ + private array $workers = []; + /** @var array */ + private array $batches = []; + + /** @var SplFileInfo */ + private array $testresultFiles = []; + /** @var SplFileInfo */ + private array $coverageFiles = []; + /** @var SplFileInfo */ + private array $junitFiles = []; + /** @var SplFileInfo */ + private array $teamcityFiles = []; + /** @var SplFileInfo */ + private array $testdoxFiles = []; + + /** @var non-empty-string[] */ + private readonly array $parameters; + + public function __construct( + private readonly Options $options, + private readonly OutputInterface $output + ) { + $this->printer = new ResultPrinter($output, $options); + + $wrapper = realpath( + dirname(__DIR__, 5) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'phpunit-wrapper.php', + ); + assert($wrapper !== false); + $phpFinder = new PhpExecutableFinder(); + $phpBin = $phpFinder->find(false); + assert($phpBin !== false); + $parameters = [$phpBin]; + $parameters = array_merge($parameters, $phpFinder->findArguments()); + + if ($options->passthruPhp !== null) { + $parameters = array_merge($parameters, $options->passthruPhp); + } + + $parameters[] = $wrapper; + + $this->parameters = $parameters; + } + + public function run(): void + { + ExcludeList::addDirectory(dirname(__DIR__)); + TestResultFacade::init(); + EventFacade::seal(); + $suiteLoader = new SuiteLoader($this->options, $this->output); + $result = TestResultFacade::result(); + + $this->pending = $suiteLoader->files; + $this->printer->setTestCount($suiteLoader->testCount); + $this->printer->start(); + $this->startWorkers(); + $this->assignAllPendingTests(); + $this->waitForAllToFinish(); + $this->complete($result); + } + + public function getExitCode(): int + { + return $this->exitcode; + } + + private function startWorkers(): void + { + for ($token = 1; $token <= $this->options->processes; ++$token) { + $this->startWorker($token); + } + } + + private function assignAllPendingTests(): void + { + $batchSize = $this->options->maxBatchSize; + + while (count($this->pending) > 0 && count($this->workers) > 0) { + foreach ($this->workers as $token => $worker) { + if (! $worker->isRunning()) { + throw $worker->getWorkerCrashedException(); + } + + if (! $worker->isFree()) { + continue; + } + + $this->flushWorker($worker); + + if ($batchSize !== null && $batchSize !== 0 && $this->batches[$token] === $batchSize) { + $this->destroyWorker($token); + $worker = $this->startWorker($token); + } + + if ( + $this->exitcode > 0 + && ( + $this->options->configuration->stopOnFailure() + || $this->options->configuration->stopOnError() + ) + ) { + $this->pending = []; + } elseif (($pending = array_shift($this->pending)) !== null) { + $worker->assign($pending); + $this->batches[$token]++; + } + } + + usleep(self::CYCLE_SLEEP); + } + } + + private function flushWorker(WrapperWorker $worker): void + { + $this->exitcode = max($this->exitcode, $worker->getExitCode()); + $this->printer->printFeedback($worker->progressFile); + $worker->reset(); + } + + private function waitForAllToFinish(): void + { + $stopped = []; + while (count($this->workers) > 0) { + foreach ($this->workers as $index => $worker) { + if ($worker->isRunning()) { + if (! isset($stopped[$index]) && $worker->isFree()) { + $worker->stop(); + $stopped[$index] = true; + } + + continue; + } + + if (! $worker->isFree()) { + throw $worker->getWorkerCrashedException(); + } + + $this->flushWorker($worker); + unset($this->workers[$index]); + } + + usleep(self::CYCLE_SLEEP); + } + } + + private function startWorker(int $token): WrapperWorker + { + $worker = new WrapperWorker( + $this->output, + $this->options, + $this->parameters, + $token, + ); + $worker->start(); + $this->batches[$token] = 0; + + $this->testresultFiles[] = $worker->testresultFile; + if (isset($worker->junitFile)) { + $this->junitFiles[] = $worker->junitFile; + } + + if (isset($worker->coverageFile)) { + $this->coverageFiles[] = $worker->coverageFile; + } + + if (isset($worker->teamcityFile)) { + $this->teamcityFiles[] = $worker->teamcityFile; + } + + if (isset($worker->testdoxFile)) { + $this->testdoxFiles[] = $worker->testdoxFile; + } + + return $this->workers[$token] = $worker; + } + + private function destroyWorker(int $token): void + { + // Mutation Testing tells us that the following `unset()` already destroys + // the `WrapperWorker`, which destroys the Symfony's `Process`, which + // automatically calls `Process::stop` within `Process::__destruct()`. + // But we prefer to have an explicit stops. + $this->workers[$token]->stop(); + + unset($this->workers[$token]); + } + + private function complete(TestResult $testResultSum): void + { + foreach ($this->testresultFiles as $testresultFile) { + if (! $testresultFile->isFile()) { + continue; + } + + $contents = file_get_contents($testresultFile->getPathname()); + assert($contents !== false); + $testResult = unserialize($contents); + assert($testResult instanceof TestResult); + + $testResultSum = new TestResult( + $testResultSum->numberOfTests() + $testResult->numberOfTests(), + $testResultSum->numberOfTestsRun() + $testResult->numberOfTestsRun(), + $testResultSum->numberOfAssertions() + $testResult->numberOfAssertions(), + array_merge_recursive($testResultSum->testErroredEvents(), $testResult->testErroredEvents()), + array_merge_recursive($testResultSum->testFailedEvents(), $testResult->testFailedEvents()), + array_merge_recursive($testResultSum->testConsideredRiskyEvents(), $testResult->testConsideredRiskyEvents()), + array_merge_recursive($testResultSum->testSkippedEvents(), $testResult->testSkippedEvents()), + array_merge_recursive($testResultSum->testMarkedIncompleteEvents(), $testResult->testMarkedIncompleteEvents()), + array_merge_recursive($testResultSum->testTriggeredDeprecationEvents(), $testResult->testTriggeredDeprecationEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpDeprecationEvents(), $testResult->testTriggeredPhpDeprecationEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpunitDeprecationEvents(), $testResult->testTriggeredPhpunitDeprecationEvents()), + array_merge_recursive($testResultSum->testTriggeredErrorEvents(), $testResult->testTriggeredErrorEvents()), + array_merge_recursive($testResultSum->testTriggeredNoticeEvents(), $testResult->testTriggeredNoticeEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpNoticeEvents(), $testResult->testTriggeredPhpNoticeEvents()), + array_merge_recursive($testResultSum->testTriggeredWarningEvents(), $testResult->testTriggeredWarningEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpWarningEvents(), $testResult->testTriggeredPhpWarningEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpunitErrorEvents(), $testResult->testTriggeredPhpunitErrorEvents()), + array_merge_recursive($testResultSum->testTriggeredPhpunitWarningEvents(), $testResult->testTriggeredPhpunitWarningEvents()), + array_merge_recursive($testResultSum->testRunnerTriggeredDeprecationEvents(), $testResult->testRunnerTriggeredDeprecationEvents()), + array_merge_recursive($testResultSum->testRunnerTriggeredWarningEvents(), $testResult->testRunnerTriggeredWarningEvents()), + ); + } + + $this->printer->printResults($testResultSum); + $this->generateCodeCoverageReports(); + $this->generateLogs(); + + $this->exitcode = (new ShellExitCodeCalculator())->calculate( + $this->options->configuration->failOnEmptyTestSuite(), + $this->options->configuration->failOnRisky(), + $this->options->configuration->failOnWarning(), + $this->options->configuration->failOnIncomplete(), + $this->options->configuration->failOnSkipped(), + $testResultSum, + ); + } + + protected function generateCodeCoverageReports(): void + { + if ($this->coverageFiles === []) { + return; + } + + CodeCoverage::init($this->options->configuration); + $coverageMerger = new CoverageMerger(CodeCoverage::instance()); + foreach ($this->coverageFiles as $coverageFile) { + $coverageMerger->addCoverageFromFile($coverageFile); + } + + CodeCoverage::generateReports( + $this->printer->printer, + $this->options->configuration, + ); + } + + private function generateLogs(): void + { + if ($this->junitFiles === []) { + return; + } + + $testSuite = (new LogMerger())->merge($this->junitFiles); + (new Writer())->write( + $testSuite, + $this->options->configuration->logfileJunit(), + ); + } +} From 2929af471525824d08541d397d69d41dea4077f4 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 6 Feb 2023 16:58:34 +0000 Subject: [PATCH 19/63] WIP --- bin/pest-wrapper.php | 91 +++++++++++++++++++ .../Parallel/Paratest/WrapperRunner.php | 80 ++++++++++++---- 2 files changed, 154 insertions(+), 17 deletions(-) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index e69de29b..2d339284 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -0,0 +1,91 @@ + false]); + assert(is_array($phpunitArgv)); + + /** + * We need to instantiate the Pest Test suite instance + * so that Pest is able to execute correctly. + */ + $argv = new ArgvInput(); + $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); + TestSuite::getInstance( + $rootPath, + $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), + ); + + $application = new ApplicationForWrapperWorker( + $phpunitArgv, + $getopt['progress-file'], + $getopt['testresult-file'], + $getopt['teamcity-file'] ?? null, + $getopt['testdox-file'] ?? null, + isset($getopt['testdox-color']), + ); + + while (true) { + if (feof(STDIN)) { + $application->end(); + exit; + } + + $testPath = fgets(STDIN); + if ($testPath === false || $testPath === WrapperWorker::COMMAND_EXIT) { + $application->end(); + exit; + } + + // It must be a 1 byte string to ensure filesize() is equal to the number of tests executed + $exitCode = $application->runTest(trim($testPath)); + + fwrite($statusFile, (string) $exitCode); + fflush($statusFile); + } +})(); diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 55873d8c..2ce4a13b 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -12,6 +12,7 @@ use ParaTest\RunnerInterface; use ParaTest\WrapperRunner\ResultPrinter; use ParaTest\WrapperRunner\SuiteLoader; use ParaTest\WrapperRunner\WrapperWorker; +use Pest\TestSuite; use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Runner\CodeCoverage; use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; @@ -31,6 +32,7 @@ use function dirname; use function file_get_contents; use function max; use function realpath; +use function unlink; use function unserialize; use function usleep; @@ -50,15 +52,15 @@ final class WrapperRunner implements RunnerInterface /** @var array */ private array $batches = []; - /** @var SplFileInfo */ + /** @var list */ private array $testresultFiles = []; - /** @var SplFileInfo */ + /** @var list */ private array $coverageFiles = []; - /** @var SplFileInfo */ + /** @var list */ private array $junitFiles = []; - /** @var SplFileInfo */ + /** @var list */ private array $teamcityFiles = []; - /** @var SplFileInfo */ + /** @var list */ private array $testdoxFiles = []; /** @var non-empty-string[] */ @@ -71,7 +73,7 @@ final class WrapperRunner implements RunnerInterface $this->printer = new ResultPrinter($output, $options); $wrapper = realpath( - dirname(__DIR__, 5) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'phpunit-wrapper.php', + dirname(__DIR__, 4) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'pest-wrapper.php', ); assert($wrapper !== false); $phpFinder = new PhpExecutableFinder(); @@ -89,21 +91,23 @@ final class WrapperRunner implements RunnerInterface $this->parameters = $parameters; } - public function run(): void + public function run(): int { ExcludeList::addDirectory(dirname(__DIR__)); TestResultFacade::init(); EventFacade::seal(); $suiteLoader = new SuiteLoader($this->options, $this->output); + $this->pending = $this->getTestFiles($suiteLoader); + $result = TestResultFacade::result(); - $this->pending = $suiteLoader->files; $this->printer->setTestCount($suiteLoader->testCount); $this->printer->start(); $this->startWorkers(); $this->assignAllPendingTests(); $this->waitForAllToFinish(); - $this->complete($result); + + return $this->complete($result); } public function getExitCode(): int @@ -141,10 +145,7 @@ final class WrapperRunner implements RunnerInterface if ( $this->exitcode > 0 - && ( - $this->options->configuration->stopOnFailure() - || $this->options->configuration->stopOnError() - ) + && $this->options->configuration->stopOnFailure() ) { $this->pending = []; } elseif (($pending = array_shift($this->pending)) !== null) { @@ -160,7 +161,10 @@ final class WrapperRunner implements RunnerInterface private function flushWorker(WrapperWorker $worker): void { $this->exitcode = max($this->exitcode, $worker->getExitCode()); - $this->printer->printFeedback($worker->progressFile); + $this->printer->printFeedback( + $worker->progressFile, + $this->teamcityFiles, + ); $worker->reset(); } @@ -232,7 +236,7 @@ final class WrapperRunner implements RunnerInterface unset($this->workers[$token]); } - private function complete(TestResult $testResultSum): void + private function complete(TestResult $testResultSum): int { foreach ($this->testresultFiles as $testresultFile) { if (! $testresultFile->isFile()) { @@ -251,6 +255,7 @@ final class WrapperRunner implements RunnerInterface array_merge_recursive($testResultSum->testErroredEvents(), $testResult->testErroredEvents()), array_merge_recursive($testResultSum->testFailedEvents(), $testResult->testFailedEvents()), array_merge_recursive($testResultSum->testConsideredRiskyEvents(), $testResult->testConsideredRiskyEvents()), + array_merge_recursive($testResultSum->testSuiteSkippedEvents(), $testResult->testSuiteSkippedEvents()), array_merge_recursive($testResultSum->testSkippedEvents(), $testResult->testSkippedEvents()), array_merge_recursive($testResultSum->testMarkedIncompleteEvents(), $testResult->testMarkedIncompleteEvents()), array_merge_recursive($testResultSum->testTriggeredDeprecationEvents(), $testResult->testTriggeredDeprecationEvents()), @@ -268,11 +273,15 @@ final class WrapperRunner implements RunnerInterface ); } - $this->printer->printResults($testResultSum); + $this->printer->printResults( + $testResultSum, + $this->teamcityFiles, + $this->testdoxFiles, + ); $this->generateCodeCoverageReports(); $this->generateLogs(); - $this->exitcode = (new ShellExitCodeCalculator())->calculate( + $exitcode = (new ShellExitCodeCalculator())->calculate( $this->options->configuration->failOnEmptyTestSuite(), $this->options->configuration->failOnRisky(), $this->options->configuration->failOnWarning(), @@ -280,6 +289,14 @@ final class WrapperRunner implements RunnerInterface $this->options->configuration->failOnSkipped(), $testResultSum, ); + + $this->clearFiles($this->testresultFiles); + $this->clearFiles($this->coverageFiles); + $this->clearFiles($this->junitFiles); + $this->clearFiles($this->teamcityFiles); + $this->clearFiles($this->testdoxFiles); + + return $exitcode; } protected function generateCodeCoverageReports(): void @@ -312,4 +329,33 @@ final class WrapperRunner implements RunnerInterface $this->options->configuration->logfileJunit(), ); } + + /** @param list $files */ + private function clearFiles(array $files): void + { + foreach ($files as $file) { + if (! $file->isFile()) { + continue; + } + + unlink($file->getPathname()); + } + } + + private function getTestFiles(SuiteLoader $suiteLoader): array + { + /** + * TODO: Clean this up + * + * We are doing this because the SuiteLoader returns filenames incorrectly + * for Pest tests. We need to find a better way to do this. + */ + + $tests = array_filter( + $suiteLoader->files, + fn(string $filename) => ! str_ends_with($filename, "eval()'d code") + ); + + return [...$tests, ...TestSuite::getInstance()->tests->getFilenames()]; + } } From 951b54e7cd68a616e2f43013a5b338828dc3f7a6 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Mon, 6 Feb 2023 19:56:35 +0000 Subject: [PATCH 20/63] Uses `ResultPrinter` --- .../Parallel/Paratest/ResultPrinter.php | 282 ++++++++++++++++++ .../Parallel/Paratest/WrapperRunner.php | 2 +- 2 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 src/Plugins/Parallel/Paratest/ResultPrinter.php diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php new file mode 100644 index 00000000..5fd0cdb2 --- /dev/null +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -0,0 +1,282 @@ + */ + private array $tailPositions; + + public function __construct( + private readonly OutputInterface $output, + private readonly Options $options + ) { + $this->printer = new class ($this->output) implements Printer { + public function __construct( + private readonly OutputInterface $output, + ) { + } + + public function print(string $buffer): void + { + $this->output->write(OutputFormatter::escape($buffer)); + } + + public function flush(): void + { + } + }; + + if (! $this->options->configuration->hasLogfileTeamcity()) { + return; + } + + $teamcityLogFileHandle = fopen($this->options->configuration->logfileTeamcity(), 'ab+'); + assert($teamcityLogFileHandle !== false); + $this->teamcityLogFileHandle = $teamcityLogFileHandle; + } + + public function setTestCount(int $testCount): void + { + $this->totalCases = $testCount; + } + + public function start(): void + { + $this->numTestsWidth = strlen((string) $this->totalCases); + $this->maxColumn = $this->numberOfColumns + + (DIRECTORY_SEPARATOR === '\\' ? -1 : 0) // fix windows blank lines + - strlen($this->getProgress()); + + // @see \PHPUnit\TextUI\TestRunner::writeMessage() + $output = $this->output; + $write = static function (string $type, string $message) use ($output): void { + $output->write(sprintf("%-15s%s\n", $type . ':', $message)); + }; + + // @see \PHPUnit\TextUI\Application::writeRuntimeInformation() + $write('Processes', (string) $this->options->processes); + } + + /** @param list $teamcityFiles */ + public function printFeedback(SplFileInfo $progressFile, array $teamcityFiles): void + { + if ($this->options->needsTeamcity) { + $teamcityProgress = $this->tailMultiple($teamcityFiles); + + if ($this->teamcityLogFileHandle !== null) { + fwrite($this->teamcityLogFileHandle, $teamcityProgress); + } + } + + if ($this->options->configuration->outputIsTeamCity()) { + assert(isset($teamcityProgress)); + $this->output->write($teamcityProgress); + + return; + } + + if ($this->options->configuration->noProgress()) { + return; + } + + $feedbackItems = $this->tail($progressFile); + if ($feedbackItems === '') { + return; + } + + $feedbackItems = preg_replace('/ +\\d+ \\/ \\d+ \\( ?\\d+%\\)\\s*/', '', $feedbackItems); + + $actualTestCount = strlen($feedbackItems); + for ($index = 0; $index < $actualTestCount; ++$index) { + $this->printFeedbackItem($feedbackItems[$index]); + } + } + + /** + * @param list $teamcityFiles + * @param list $testdoxFiles + */ + public function printResults(TestResult $testResult, array $teamcityFiles, array $testdoxFiles): void + { + if ($this->options->needsTeamcity) { + $teamcityProgress = $this->tailMultiple($teamcityFiles); + + if ($this->teamcityLogFileHandle !== null) { + fwrite($this->teamcityLogFileHandle, $teamcityProgress); + $resource = $this->teamcityLogFileHandle; + $this->teamcityLogFileHandle = null; + fclose($resource); + } + } + + if ($this->options->configuration->outputIsTeamCity()) { + assert(isset($teamcityProgress)); + $this->output->write($teamcityProgress); + + return; + } + + if ($this->options->configuration->outputIsTestDox()) { + $this->output->write($this->tailMultiple($testdoxFiles)); + + return; + } + + $resultPrinter = new DefaultResultPrinter( + $this->printer, + $this->options->configuration->displayDetailsOnIncompleteTests(), + $this->options->configuration->displayDetailsOnSkippedTests(), + $this->options->configuration->displayDetailsOnTestsThatTriggerDeprecations(), + $this->options->configuration->displayDetailsOnTestsThatTriggerErrors(), + $this->options->configuration->displayDetailsOnTestsThatTriggerNotices(), + $this->options->configuration->displayDetailsOnTestsThatTriggerWarnings(), + false, + ); + $summaryPrinter = new SummaryPrinter( + $this->printer, + $this->options->configuration->colors(), + ); + + $this->printer->print(PHP_EOL . (new ResourceUsageFormatter())->resourceUsageSinceStartOfRequest() . PHP_EOL . PHP_EOL); + + $resultPrinter->print($testResult); + $summaryPrinter->print($testResult); + } + + private function printFeedbackItem(string $item): void + { + $this->printFeedbackItemColor($item); + ++$this->column; + ++$this->casesProcessed; + if ($this->column !== $this->maxColumn && $this->casesProcessed < $this->totalCases) { + return; + } + + if ( + $this->casesProcessed > 0 + && $this->casesProcessed === $this->totalCases + && ($pad = $this->maxColumn - $this->column) > 0 + ) { + $this->output->write(str_repeat(' ', $pad)); + } + + $this->output->write($this->getProgress() . "\n"); + $this->column = 0; + } + + private function printFeedbackItemColor(string $item): void + { + $buffer = match ($item) { + 'E' => $this->colorizeTextBox('fg-red, bold', $item), + 'F' => $this->colorizeTextBox('bg-red, fg-white', $item), + 'I', 'N', 'D', 'R', 'W' => $this->colorizeTextBox('fg-yellow, bold', $item), + 'S' => $this->colorizeTextBox('fg-cyan, bold', $item), + default => $item, + }; + + $this->output->write($buffer); + } + + private function getProgress(): string + { + return sprintf( + ' %' . $this->numTestsWidth . 'd / %' . $this->numTestsWidth . 'd (%3s%%)', + $this->casesProcessed, + $this->totalCases, + floor(($this->totalCases > 0 ? $this->casesProcessed / $this->totalCases : 0) * 100), + ); + } + + private function colorizeTextBox(string $color, string $buffer): string + { + if (! $this->options->configuration->colors()) { + return $buffer; + } + + return Color::colorizeTextBox($color, $buffer); + } + + /** @param list $files */ + private function tailMultiple(array $files): string + { + $content = ''; + foreach ($files as $file) { + if (! $file->isFile()) { + continue; + } + + $content .= $this->tail($file); + } + + return $content; + } + + private function tail(SplFileInfo $file): string + { + $path = $file->getPathname(); + $handle = fopen($path, 'r'); + assert($handle !== false); + $fseek = fseek($handle, $this->tailPositions[$path] ?? 0); + assert($fseek === 0); + + $contents = ''; + while (! feof($handle)) { + $fread = fread($handle, 8192); + assert($fread !== false); + $contents .= $fread; + } + + $ftell = ftell($handle); + assert($ftell !== false); + $this->tailPositions[$path] = $ftell; + fclose($handle); + + return $contents; + } +} diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 2ce4a13b..4ea37787 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -9,7 +9,6 @@ use ParaTest\JUnit\LogMerger; use ParaTest\JUnit\Writer; use ParaTest\Options; use ParaTest\RunnerInterface; -use ParaTest\WrapperRunner\ResultPrinter; use ParaTest\WrapperRunner\SuiteLoader; use ParaTest\WrapperRunner\WrapperWorker; use Pest\TestSuite; @@ -75,6 +74,7 @@ final class WrapperRunner implements RunnerInterface $wrapper = realpath( dirname(__DIR__, 4) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'pest-wrapper.php', ); + assert($wrapper !== false); $phpFinder = new PhpExecutableFinder(); $phpBin = $phpFinder->find(false); From d03302db7b93a09ebda7b73461442401e96e187f Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 6 Feb 2023 23:06:13 +0000 Subject: [PATCH 21/63] WIP --- src/Plugins/Parallel/Handlers/Laravel.php | 18 ++ .../Parallel/Paratest/ResultPrinter.php | 106 +++------- .../Parallel/Paratest/WrapperRunner.php | 6 + .../Parallel/Support/CompactPrinter.php | 181 ++++++++++++++++++ 4 files changed, 231 insertions(+), 80 deletions(-) create mode 100644 src/Plugins/Parallel/Support/CompactPrinter.php diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 07fcb062..50f34950 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -4,7 +4,12 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; +use Illuminate\Testing\ParallelRunner; +use ParaTest\Options; +use ParaTest\RunnerInterface; use Pest\Plugins\Concerns\HandleArguments; +use Pest\Plugins\Parallel\Paratest\WrapperRunner; +use Symfony\Component\Console\Output\OutputInterface; /** * @internal @@ -19,6 +24,8 @@ final class Laravel return $args; } + $this->setLaravelParallelRunner(); + foreach ($args as $value) { if (str_starts_with($value, '--runner')) { $args = $this->popArgument($value, $args); @@ -28,6 +35,17 @@ final class Laravel return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $args); } + private function setLaravelParallelRunner(): void + { + if (!method_exists(ParallelRunner::class, 'resolveRunnerUsing')) { + exit('Using parallel with Pest requires Laravel v8.55.0 or higher.'); + } + + ParallelRunner::resolveRunnerUsing(function (Options $options, OutputInterface $output): RunnerInterface { + return new WrapperRunner($options, $output); + }); + } + private static function isALaravelApplication(): bool { return class_exists(\Illuminate\Foundation\Application::class) diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php index 5fd0cdb2..752b1787 100644 --- a/src/Plugins/Parallel/Paratest/ResultPrinter.php +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -4,7 +4,10 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Paratest; +use NunoMaduro\Collision\Adapters\Phpunit\TestResult as CollisionTestResult; +use NunoMaduro\Collision\Exceptions\TestException; use ParaTest\Options; +use Pest\Plugins\Parallel\Support\CompactPrinter; use PHPUnit\Runner\TestSuiteSorter; use PHPUnit\TestRunner\TestResult\TestResult; use PHPUnit\TextUI\Output\Default\ResultPrinter as DefaultResultPrinter; @@ -13,11 +16,13 @@ use PHPUnit\TextUI\Output\SummaryPrinter; use PHPUnit\Util\Color; use SebastianBergmann\CodeCoverage\Driver\Selector; use SebastianBergmann\CodeCoverage\Filter; +use SebastianBergmann\Timer\Duration; use SebastianBergmann\Timer\ResourceUsageFormatter; use SplFileInfo; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Output\OutputInterface; +use Termwind\Terminal; use function assert; use function fclose; use function feof; @@ -32,6 +37,7 @@ use function sprintf; use function str_repeat; use function strlen; +use function Termwind\terminal; use const DIRECTORY_SEPARATOR; use const PHP_EOL; use const PHP_VERSION; @@ -40,6 +46,7 @@ use const PHP_VERSION; final class ResultPrinter { public readonly Printer $printer; + private readonly CompactPrinter $compactPrinter; private int $numTestsWidth = 0; private int $maxColumn = 0; @@ -72,6 +79,8 @@ final class ResultPrinter } }; + $this->compactPrinter = new CompactPrinter(); + if (! $this->options->configuration->hasLogfileTeamcity()) { return; } @@ -88,19 +97,13 @@ final class ResultPrinter public function start(): void { - $this->numTestsWidth = strlen((string) $this->totalCases); - $this->maxColumn = $this->numberOfColumns - + (DIRECTORY_SEPARATOR === '\\' ? -1 : 0) // fix windows blank lines - - strlen($this->getProgress()); - - // @see \PHPUnit\TextUI\TestRunner::writeMessage() - $output = $this->output; - $write = static function (string $type, string $message) use ($output): void { - $output->write(sprintf("%-15s%s\n", $type . ':', $message)); - }; - - // @see \PHPUnit\TextUI\Application::writeRuntimeInformation() - $write('Processes', (string) $this->options->processes); + $this->compactPrinter->line(sprintf( + 'Running %d test file%s using %d process%s', + $this->totalCases, + $this->totalCases === 1 ? '' : 's', + $this->options->processes, + $this->options->processes === 1 ? '' : 'es') + ); } /** @param list $teamcityFiles */ @@ -142,7 +145,7 @@ final class ResultPrinter * @param list $teamcityFiles * @param list $testdoxFiles */ - public function printResults(TestResult $testResult, array $teamcityFiles, array $testdoxFiles): void + public function printResults(TestResult $testResult, array $teamcityFiles, array $testdoxFiles, Duration $duration): void { if ($this->options->needsTeamcity) { $teamcityProgress = $this->tailMultiple($teamcityFiles); @@ -168,78 +171,21 @@ final class ResultPrinter return; } - $resultPrinter = new DefaultResultPrinter( - $this->printer, - $this->options->configuration->displayDetailsOnIncompleteTests(), - $this->options->configuration->displayDetailsOnSkippedTests(), - $this->options->configuration->displayDetailsOnTestsThatTriggerDeprecations(), - $this->options->configuration->displayDetailsOnTestsThatTriggerErrors(), - $this->options->configuration->displayDetailsOnTestsThatTriggerNotices(), - $this->options->configuration->displayDetailsOnTestsThatTriggerWarnings(), - false, - ); - $summaryPrinter = new SummaryPrinter( - $this->printer, - $this->options->configuration->colors(), - ); + $this->compactPrinter->newLine(); - $this->printer->print(PHP_EOL . (new ResourceUsageFormatter())->resourceUsageSinceStartOfRequest() . PHP_EOL . PHP_EOL); + $issues = array_map(fn($event) => CollisionTestResult::fromTestCase( + $event->test(), + CollisionTestResult::FAIL, + $event->throwable(), + ), [...$testResult->testFailedEvents(), ...$testResult->testErroredEvents()]); - $resultPrinter->print($testResult); - $summaryPrinter->print($testResult); + $this->compactPrinter->errors($issues); + $this->compactPrinter->recap($testResult, $duration); } private function printFeedbackItem(string $item): void { - $this->printFeedbackItemColor($item); - ++$this->column; - ++$this->casesProcessed; - if ($this->column !== $this->maxColumn && $this->casesProcessed < $this->totalCases) { - return; - } - - if ( - $this->casesProcessed > 0 - && $this->casesProcessed === $this->totalCases - && ($pad = $this->maxColumn - $this->column) > 0 - ) { - $this->output->write(str_repeat(' ', $pad)); - } - - $this->output->write($this->getProgress() . "\n"); - $this->column = 0; - } - - private function printFeedbackItemColor(string $item): void - { - $buffer = match ($item) { - 'E' => $this->colorizeTextBox('fg-red, bold', $item), - 'F' => $this->colorizeTextBox('bg-red, fg-white', $item), - 'I', 'N', 'D', 'R', 'W' => $this->colorizeTextBox('fg-yellow, bold', $item), - 'S' => $this->colorizeTextBox('fg-cyan, bold', $item), - default => $item, - }; - - $this->output->write($buffer); - } - - private function getProgress(): string - { - return sprintf( - ' %' . $this->numTestsWidth . 'd / %' . $this->numTestsWidth . 'd (%3s%%)', - $this->casesProcessed, - $this->totalCases, - floor(($this->totalCases > 0 ? $this->casesProcessed / $this->totalCases : 0) * 100), - ); - } - - private function colorizeTextBox(string $color, string $buffer): string - { - if (! $this->options->configuration->colors()) { - return $buffer; - } - - return Color::colorizeTextBox($color, $buffer); + $this->compactPrinter->descriptionItem($item); } /** @param list $files */ diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 4ea37787..76a77fde 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -18,6 +18,7 @@ use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; use PHPUnit\TestRunner\TestResult\TestResult; use PHPUnit\TextUI\ShellExitCodeCalculator; use PHPUnit\Util\ExcludeList; +use SebastianBergmann\Timer\Timer; use SplFileInfo; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\PhpExecutableFinder; @@ -42,6 +43,7 @@ final class WrapperRunner implements RunnerInterface { private const CYCLE_SLEEP = 10000; private readonly ResultPrinter $printer; + private Timer $timer; /** @var non-empty-string[] */ private array $pending = []; @@ -70,6 +72,7 @@ final class WrapperRunner implements RunnerInterface private readonly OutputInterface $output ) { $this->printer = new ResultPrinter($output, $options); + $this->timer = new Timer(); $wrapper = realpath( dirname(__DIR__, 4) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'pest-wrapper.php', @@ -93,6 +96,8 @@ final class WrapperRunner implements RunnerInterface public function run(): int { + $this->timer->start(); + ExcludeList::addDirectory(dirname(__DIR__)); TestResultFacade::init(); EventFacade::seal(); @@ -277,6 +282,7 @@ final class WrapperRunner implements RunnerInterface $testResultSum, $this->teamcityFiles, $this->testdoxFiles, + $this->timer->stop(), ); $this->generateCodeCoverageReports(); $this->generateLogs(); diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php new file mode 100644 index 00000000..1e852e5f --- /dev/null +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -0,0 +1,181 @@ +terminal = terminal(); + $this->output = new ConsoleOutput(decorated: true); + $this->style = new Style($this->output); + + $this->compactSymbolsPerLine = $this->terminal->width() - 4; + } + + public function newLine(): void + { + render('
'); + } + + public function line(string $message): void + { + render("{$message}"); + } + + public function descriptionItem(string $item): void + { + // TODO: Support todos + + $icon = match (strtolower($item)) { + 'f', 'e' => '⨯', // FAILED + 's' => 's', // SKIPPED + 'w', 'r' => '!', // WARN, RISKY + 'i' => '…', // INCOMPLETE + '.' => '.', // PASSED + default => $item, + }; + + $color = match (strtolower($item)) { + 'f', 'e' => 'red', + 'd', 's', 'i', 'r', 'w' => 'yellow', + default => 'gray', + }; + + $symbolsOnCurrentLine = $this->compactProcessed % $this->compactSymbolsPerLine; + + if ($symbolsOnCurrentLine >= $this->terminal->width() - 4) { + $symbolsOnCurrentLine = 0; + } + + if ($symbolsOnCurrentLine === 0) { + $this->output->writeln(''); + $this->output->write(' '); + } + + $this->output->write(sprintf('%s', $color, $icon)); + + $this->compactProcessed++; + + //switch ($item) { + // case self::TODO: + // return '↓'; + // case self::RUNS: + // return '•'; + // default: + // return '✓'; + //} + } + + public function errors(array $errors): void + { + array_map(function (TestResult $testResult): void { + if (! $testResult->throwable instanceof \PHPUnit\Event\Code\Throwable) { + throw new ShouldNotHappen(); + } + + renderUsing($this->output); + render(<<<'HTML' +
+
+
+ HTML); + + $testCaseName = $testResult->testCaseName; + $description = $testResult->description; + + /** @var class-string $throwableClassName */ + $throwableClassName = $testResult->throwable->className(); + + $throwableClassName = ! in_array($throwableClassName, [ + ExpectationFailedException::class, + IncompleteTestError::class, + ], true) ? sprintf('%s', (new ReflectionClass($throwableClassName))->getShortName()) + : ''; + + $truncateClasses = $this->output->isVerbose() ? '' : 'flex-1 truncate'; + + renderUsing($this->output); + render(sprintf(<<<'HTML' +
+ + %s %s>%s + + + %s + +
+ HTML, $truncateClasses, $testResult->color, $testResult->type, $testCaseName, $description, $throwableClassName)); + + $this->style->writeError($testResult->throwable); + }, $errors); + } + + public function recap(\PHPUnit\TestRunner\TestResult\TestResult $testResult, Duration $duration): void + { + $testCounts = [ + 'passed' => ['green', $testResult->numberOfTestsRun()], + 'failed' => ['red', $testResult->numberOfTestFailedEvents()], + 'errored' => ['red', $testResult->numberOfTestErroredEvents()], + 'skipped' => ['yellow', $testResult->numberOfTestSkippedEvents()], + 'incomplete' => ['yellow', $testResult->numberOfTestMarkedIncompleteEvents()], + 'risky' => ['yellow', $testResult->numberOfTestsWithTestConsideredRiskyEvents()], + 'warnings' => ['yellow', $testResult->numberOfTestsWithTestTriggeredWarningEvents()], + ]; + + $tests = []; + + foreach ($testCounts as $type => [$color, $count]) { + if ($count === 0) { + continue; + } + + $tests[] = "$count $type"; + } + + $this->output->writeln(['']); + + if (! empty($tests)) { + $this->output->writeln([ + sprintf( + ' Tests: %s (%s assertions)', + implode(', ', $tests), + $testResult->numberOfAssertions() + ), + ]); + } + + $this->output->writeln([ + sprintf( + ' Duration: %ss', + number_format($duration->asSeconds(), 2, '.', '') + ), + ]); + + $this->output->writeln(''); + } +} From 7466667c082e13453ee4f270062433878b2ed855 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 6 Feb 2023 23:07:40 +0000 Subject: [PATCH 22/63] WIP --- src/Plugins/Parallel/Paratest/WrapperRunner.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 76a77fde..2644539f 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -96,8 +96,6 @@ final class WrapperRunner implements RunnerInterface public function run(): int { - $this->timer->start(); - ExcludeList::addDirectory(dirname(__DIR__)); TestResultFacade::init(); EventFacade::seal(); @@ -108,6 +106,9 @@ final class WrapperRunner implements RunnerInterface $this->printer->setTestCount($suiteLoader->testCount); $this->printer->start(); + + $this->timer->start(); + $this->startWorkers(); $this->assignAllPendingTests(); $this->waitForAllToFinish(); From 2f519261f57797c05fec1c307f04a6dc9a4a5650 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 12:49:41 +0000 Subject: [PATCH 23/63] Fixes and improvements. --- bin/pest-wrapper.php | 41 +++-- composer.json | 2 +- docker/Dockerfile | 4 + src/Logging/TeamCity/Converter.php | 83 +--------- src/Plugins/Parallel.php | 11 +- .../Parallel/Paratest/ResultPrinter.php | 36 +---- .../Parallel/Paratest/WrapperRunner.php | 38 +++-- .../Parallel/Support/CompactPrinter.php | 146 ++++++------------ src/Support/StateGenerator.php | 102 ++++++++++++ 9 files changed, 227 insertions(+), 236 deletions(-) create mode 100644 src/Support/StateGenerator.php diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index 2d339284..210e7976 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -5,10 +5,36 @@ declare(strict_types=1); use ParaTest\WrapperRunner\ApplicationForWrapperWorker; use ParaTest\WrapperRunner\WrapperWorker; use Pest\ConfigLoader; +use Pest\Kernel; +use Pest\Plugins\Actions\CallsAddsOutput; +use Pest\Plugins\Actions\CallsHandleArguments; +use Pest\Support\Container; use Pest\TestSuite; use Symfony\Component\Console\Input\ArgvInput; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\ConsoleOutput; +use Symfony\Component\Console\Output\OutputInterface; -(static function (): void { +$bootPest = (static function (): void { + $argv = new ArgvInput(); + $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); + $testSuite = TestSuite::getInstance( + $rootPath, + $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), + ); + + $output = new ConsoleOutput(OutputInterface::VERBOSITY_NORMAL, true); + + $container = Container::getInstance(); + $container->add(TestSuite::class, $testSuite); + $container->add(OutputInterface::class, $output); + $container->add(InputInterface::class, $argv); + $container->add(Container::class, $container); + + Kernel::boot(); +}); + +(static function () use ($bootPest): void { $getopt = getopt('', [ 'status-file:', 'progress-file:', @@ -50,16 +76,9 @@ use Symfony\Component\Console\Input\ArgvInput; $phpunitArgv = unserialize($getopt['phpunit-argv'], ['allowed_classes' => false]); assert(is_array($phpunitArgv)); - /** - * We need to instantiate the Pest Test suite instance - * so that Pest is able to execute correctly. - */ - $argv = new ArgvInput(); - $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); - TestSuite::getInstance( - $rootPath, - $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), - ); + $bootPest(); + + (new CallsHandleArguments())($phpunitArgv); $application = new ApplicationForWrapperWorker( $phpunitArgv, diff --git a/composer.json b/composer.json index 0c4e5343..8c5342fe 100644 --- a/composer.json +++ b/composer.json @@ -43,7 +43,7 @@ ] }, "require-dev": { - "brianium/paratest": "^7.0", + "brianium/paratest": "^7.0.4", "pestphp/pest-dev-tools": "^2.4.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" diff --git a/docker/Dockerfile b/docker/Dockerfile index 61334034..ff10bcb2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,6 +12,10 @@ RUN docker-php-ext-configure intl RUN docker-php-ext-install intl RUN docker-php-ext-enable intl +RUN apk add --no-cache $PHPIZE_DEPS linux-headers +RUN pecl install xdebug +RUN docker-php-ext-enable xdebug + COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /var/www/html diff --git a/src/Logging/TeamCity/Converter.php b/src/Logging/TeamCity/Converter.php index c0d91d41..0a1e592e 100644 --- a/src/Logging/TeamCity/Converter.php +++ b/src/Logging/TeamCity/Converter.php @@ -7,6 +7,7 @@ namespace Pest\Logging\TeamCity; use NunoMaduro\Collision\Adapters\Phpunit\State; use NunoMaduro\Collision\Adapters\Phpunit\TestResult; use Pest\Exceptions\ShouldNotHappen; +use Pest\Support\StateGenerator; use Pest\Support\Str; use PHPUnit\Event\Code\Test; use PHPUnit\Event\Code\TestDox; @@ -28,12 +29,15 @@ final class Converter { private const PREFIX = 'P\\'; + private readonly StateGenerator $stateGenerator; + /** * Creates a new instance of the Converter. */ public function __construct( private readonly string $rootPath, ) { + $this->stateGenerator = new StateGenerator(); } /** @@ -183,83 +187,6 @@ final class Converter */ public function getStateFromResult(PhpUnitTestResult $result): State { - $state = new State(); - - foreach ($result->testErroredEvents() as $resultEvent) { - assert($resultEvent instanceof Errored); - $state->add(TestResult::fromTestCase( - $resultEvent->test(), - TestResult::FAIL, - $resultEvent->throwable() - )); - } - - foreach ($result->testFailedEvents() as $resultEvent) { - $state->add(TestResult::fromTestCase( - $resultEvent->test(), - TestResult::FAIL, - $resultEvent->throwable() - )); - } - - foreach ($result->testMarkedIncompleteEvents() as $resultEvent) { - $state->add(TestResult::fromTestCase( - $resultEvent->test(), - TestResult::INCOMPLETE, - $resultEvent->throwable() - )); - } - - foreach ($result->testConsideredRiskyEvents() as $riskyEvents) { - foreach ($riskyEvents as $riskyEvent) { - $state->add(TestResult::fromTestCase( - $riskyEvent->test(), - TestResult::RISKY, - Throwable::from(new IncompleteTestError($riskyEvent->message())) - )); - } - } - - foreach ($result->testSkippedEvents() as $resultEvent) { - if ($resultEvent->message() === '__TODO__') { - $state->add(TestResult::fromTestCase($resultEvent->test(), TestResult::TODO)); - - continue; - } - - $state->add(TestResult::fromTestCase( - $resultEvent->test(), - TestResult::SKIPPED, - Throwable::from(new SkippedWithMessageException($resultEvent->message())) - )); - } - - $numberOfPassedTests = $result->numberOfTests() - - $result->numberOfTestErroredEvents() - - $result->numberOfTestFailedEvents() - - $result->numberOfTestSkippedEvents() - - $result->numberOfTestsWithTestConsideredRiskyEvents() - - $result->numberOfTestMarkedIncompleteEvents(); - - for ($i = 0; $i < $numberOfPassedTests; $i++) { - $state->add(TestResult::fromTestCase( - - new TestMethod( - /** @phpstan-ignore-next-line */ - "$i", - /** @phpstan-ignore-next-line */ - '', - '', - 1, - /** @phpstan-ignore-next-line */ - TestDox::fromClassNameAndMethodName('', ''), - MetadataCollection::fromArray([]), - TestDataCollection::fromArray([]) - ), - TestResult::PASS - )); - } - - return $state; + return $this->stateGenerator->fromPhpUnitTestResult($result); } } diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index bc2df874..76e69b43 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -4,12 +4,14 @@ namespace Pest\Plugins; use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; +use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Concerns\HandleArguments; use Pest\Support\Arr; use Pest\Support\Container; use Pest\TestSuite; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Output\OutputInterface; +use function Pest\version; final class Parallel implements HandlesArguments { @@ -54,7 +56,14 @@ final class Parallel implements HandlesArguments $testSuite = TestSuite::getInstance(); - return ParaTestCommand::applicationFactory($testSuite->rootPath)->run(new ArgvInput($filteredArguments)); + $command = ParaTestCommand::applicationFactory($testSuite->rootPath); + $command->setAutoExit(false); + $command->setName('Pest'); + $command->setVersion(version()); + $exitCode = $command->run(new ArgvInput($filteredArguments)); + + $exitCode = (new CallsAddsOutput())($exitCode); + exit($exitCode); } private function markTestSuiteAsParallelSubProcessIfRequired(): void diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php index 752b1787..7837ab36 100644 --- a/src/Plugins/Parallel/Paratest/ResultPrinter.php +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -5,28 +5,20 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Paratest; use NunoMaduro\Collision\Adapters\Phpunit\TestResult as CollisionTestResult; -use NunoMaduro\Collision\Exceptions\TestException; use ParaTest\Options; use Pest\Plugins\Parallel\Support\CompactPrinter; -use PHPUnit\Runner\TestSuiteSorter; +use Pest\Support\StateGenerator; +use PHPUnit\Event\Test\Errored; use PHPUnit\TestRunner\TestResult\TestResult; -use PHPUnit\TextUI\Output\Default\ResultPrinter as DefaultResultPrinter; use PHPUnit\TextUI\Output\Printer; -use PHPUnit\TextUI\Output\SummaryPrinter; -use PHPUnit\Util\Color; -use SebastianBergmann\CodeCoverage\Driver\Selector; -use SebastianBergmann\CodeCoverage\Filter; use SebastianBergmann\Timer\Duration; -use SebastianBergmann\Timer\ResourceUsageFormatter; use SplFileInfo; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Output\OutputInterface; -use Termwind\Terminal; use function assert; use function fclose; use function feof; -use function floor; use function fopen; use function fread; use function fseek; @@ -34,26 +26,16 @@ use function ftell; use function fwrite; use function preg_replace; use function sprintf; -use function str_repeat; use function strlen; -use function Termwind\terminal; -use const DIRECTORY_SEPARATOR; -use const PHP_EOL; -use const PHP_VERSION; - /** @internal */ final class ResultPrinter { public readonly Printer $printer; private readonly CompactPrinter $compactPrinter; - private int $numTestsWidth = 0; - private int $maxColumn = 0; private int $totalCases = 0; - private int $column = 0; - private int $casesProcessed = 0; - private int $numberOfColumns = 80; + /** @var resource|null */ private $teamcityLogFileHandle; /** @var array */ @@ -98,7 +80,7 @@ final class ResultPrinter public function start(): void { $this->compactPrinter->line(sprintf( - 'Running %d test file%s using %d process%s', + 'Running %d test%s using %d process%s', $this->totalCases, $this->totalCases === 1 ? '' : 's', $this->options->processes, @@ -173,14 +155,10 @@ final class ResultPrinter $this->compactPrinter->newLine(); - $issues = array_map(fn($event) => CollisionTestResult::fromTestCase( - $event->test(), - CollisionTestResult::FAIL, - $event->throwable(), - ), [...$testResult->testFailedEvents(), ...$testResult->testErroredEvents()]); + $state = (new StateGenerator())->fromPhpUnitTestResult($testResult); - $this->compactPrinter->errors($issues); - $this->compactPrinter->recap($testResult, $duration); + $this->compactPrinter->errors($state); + $this->compactPrinter->recap($state, $testResult, $duration); } private function printFeedbackItem(string $item): void diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 2644539f..1c0d87c8 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -16,6 +16,7 @@ use PHPUnit\Event\Facade as EventFacade; use PHPUnit\Runner\CodeCoverage; use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; use PHPUnit\TestRunner\TestResult\TestResult; +use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry; use PHPUnit\TextUI\ShellExitCodeCalculator; use PHPUnit\Util\ExcludeList; use SebastianBergmann\Timer\Timer; @@ -67,6 +68,8 @@ final class WrapperRunner implements RunnerInterface /** @var non-empty-string[] */ private readonly array $parameters; + private CodeCoverageFilterRegistry $codeCoverageFilterRegistry; + public function __construct( private readonly Options $options, private readonly OutputInterface $output @@ -92,6 +95,7 @@ final class WrapperRunner implements RunnerInterface $parameters[] = $wrapper; $this->parameters = $parameters; + $this->codeCoverageFilterRegistry = new CodeCoverageFilterRegistry(); } public function run(): int @@ -99,7 +103,7 @@ final class WrapperRunner implements RunnerInterface ExcludeList::addDirectory(dirname(__DIR__)); TestResultFacade::init(); EventFacade::seal(); - $suiteLoader = new SuiteLoader($this->options, $this->output); + $suiteLoader = new SuiteLoader($this->options, $this->output, $this->codeCoverageFilterRegistry,); $this->pending = $this->getTestFiles($suiteLoader); $result = TestResultFacade::result(); @@ -116,11 +120,6 @@ final class WrapperRunner implements RunnerInterface return $this->complete($result); } - public function getExitCode(): int - { - return $this->exitcode; - } - private function startWorkers(): void { for ($token = 1; $token <= $this->options->processes; ++$token) { @@ -155,6 +154,8 @@ final class WrapperRunner implements RunnerInterface ) { $this->pending = []; } elseif (($pending = array_shift($this->pending)) !== null) { + $this->debug(sprintf('Assigning %s to worker %d', $pending, $token)); + $worker->assign($pending); $this->batches[$token]++; } @@ -312,13 +313,14 @@ final class WrapperRunner implements RunnerInterface return; } - CodeCoverage::init($this->options->configuration); - $coverageMerger = new CoverageMerger(CodeCoverage::instance()); + $coverageManager = new CodeCoverage(); + $coverageManager->init($this->options->configuration, $this->codeCoverageFilterRegistry); + $coverageMerger = new CoverageMerger($coverageManager->codeCoverage()); foreach ($this->coverageFiles as $coverageFile) { $coverageMerger->addCoverageFromFile($coverageFile); } - CodeCoverage::generateReports( + $coverageManager->generateReports( $this->printer->printer, $this->options->configuration, ); @@ -349,14 +351,13 @@ final class WrapperRunner implements RunnerInterface } } + /** + * We are doing this because the SuiteLoader returns filenames incorrectly + * for Pest tests. Ideally we should find a cleaner solution. + */ private function getTestFiles(SuiteLoader $suiteLoader): array { - /** - * TODO: Clean this up - * - * We are doing this because the SuiteLoader returns filenames incorrectly - * for Pest tests. We need to find a better way to do this. - */ + $this->debug(sprintf("Found %d test file%s", count($suiteLoader->files), count($suiteLoader->files) === 1 ? '' : 's')); $tests = array_filter( $suiteLoader->files, @@ -365,4 +366,11 @@ final class WrapperRunner implements RunnerInterface return [...$tests, ...TestSuite::getInstance()->tests->getFilenames()]; } + + private function debug(string $message): void + { + if ($this->options->verbose) { + $this->output->writeln(" {$message} "); + } + } } diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index 1e852e5f..e32dff72 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -4,12 +4,26 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Support; +use NunoMaduro\Collision\Adapters\Phpunit\Printers\DefaultPrinter; use NunoMaduro\Collision\Adapters\Phpunit\State; use NunoMaduro\Collision\Adapters\Phpunit\Style; use NunoMaduro\Collision\Adapters\Phpunit\TestResult; use NunoMaduro\Collision\Exceptions\ShouldNotHappen; +use Pest\Logging\TeamCity\Converter; +use Pest\Support\StateGenerator; +use PHPUnit\Event\Code\TestDox; +use PHPUnit\Event\Code\TestMethod; +use PHPUnit\Event\Event; +use PHPUnit\Event\Telemetry\HRTime; +use PHPUnit\Event\Telemetry\Info; +use PHPUnit\Event\Telemetry\MemoryUsage; +use PHPUnit\Event\Telemetry\Snapshot; +use PHPUnit\Event\Test\Passed; +use PHPUnit\Event\TestData\TestDataCollection; use PHPUnit\Framework\ExpectationFailedException; use PHPUnit\Framework\IncompleteTestError; +use PHPUnit\Metadata\MetadataCollection; +use PHPUnit\TestRunner\TestResult\TestResult as PHPUnitTestResult; use ReflectionClass; use SebastianBergmann\Timer\Duration; use Symfony\Component\Console\Output\ConsoleOutput; @@ -49,22 +63,20 @@ final class CompactPrinter public function descriptionItem(string $item): void { - // TODO: Support todos + // TODO: Support TODOs - $icon = match (strtolower($item)) { - 'f', 'e' => '⨯', // FAILED - 's' => 's', // SKIPPED - 'w', 'r' => '!', // WARN, RISKY - 'i' => '…', // INCOMPLETE - '.' => '.', // PASSED - default => $item, - }; + $lookupTable = [ + '.' => ['gray', '.'], + 'S' => ['yellow', 's'], + 'I' => ['yellow', 'i'], + 'N' => ['yellow', 'i'], + 'R' => ['yellow', '!'], + 'W' => ['yellow', '!'], + 'E' => ['red', '⨯'], + 'F' => ['red', '⨯'], + ]; - $color = match (strtolower($item)) { - 'f', 'e' => 'red', - 'd', 's', 'i', 'r', 'w' => 'yellow', - default => 'gray', - }; + [$color, $icon] = $lookupTable[$item] ?? $lookupTable['.']; $symbolsOnCurrentLine = $this->compactProcessed % $this->compactSymbolsPerLine; @@ -80,102 +92,34 @@ final class CompactPrinter $this->output->write(sprintf('%s', $color, $icon)); $this->compactProcessed++; - - //switch ($item) { - // case self::TODO: - // return '↓'; - // case self::RUNS: - // return '•'; - // default: - // return '✓'; - //} } - public function errors(array $errors): void + public function errors(State $state): void { - array_map(function (TestResult $testResult): void { - if (! $testResult->throwable instanceof \PHPUnit\Event\Code\Throwable) { - throw new ShouldNotHappen(); - } - - renderUsing($this->output); - render(<<<'HTML' -
-
-
- HTML); - - $testCaseName = $testResult->testCaseName; - $description = $testResult->description; - - /** @var class-string $throwableClassName */ - $throwableClassName = $testResult->throwable->className(); - - $throwableClassName = ! in_array($throwableClassName, [ - ExpectationFailedException::class, - IncompleteTestError::class, - ], true) ? sprintf('%s', (new ReflectionClass($throwableClassName))->getShortName()) - : ''; - - $truncateClasses = $this->output->isVerbose() ? '' : 'flex-1 truncate'; - - renderUsing($this->output); - render(sprintf(<<<'HTML' -
- - %s %s>%s - - - %s - -
- HTML, $truncateClasses, $testResult->color, $testResult->type, $testCaseName, $description, $throwableClassName)); - - $this->style->writeError($testResult->throwable); - }, $errors); + $this->style->writeErrorsSummary($state, false); } - public function recap(\PHPUnit\TestRunner\TestResult\TestResult $testResult, Duration $duration): void + public function recap(State $state, PHPUnitTestResult $testResult, Duration $duration): void { - $testCounts = [ - 'passed' => ['green', $testResult->numberOfTestsRun()], - 'failed' => ['red', $testResult->numberOfTestFailedEvents()], - 'errored' => ['red', $testResult->numberOfTestErroredEvents()], - 'skipped' => ['yellow', $testResult->numberOfTestSkippedEvents()], - 'incomplete' => ['yellow', $testResult->numberOfTestMarkedIncompleteEvents()], - 'risky' => ['yellow', $testResult->numberOfTestsWithTestConsideredRiskyEvents()], - 'warnings' => ['yellow', $testResult->numberOfTestsWithTestTriggeredWarningEvents()], - ]; + assert($this->output instanceof ConsoleOutput); + $style = new Style($this->output); - $tests = []; + $nanoseconds = $duration->asNanoseconds() % 1000000000; + $snapshotDuration = HRTime::fromSecondsAndNanoseconds((int)$duration->asSeconds(), $nanoseconds); + $telemetryDuration = \PHPUnit\Event\Telemetry\Duration::fromSecondsAndNanoseconds((int)$duration->asSeconds(), $nanoseconds); - foreach ($testCounts as $type => [$color, $count]) { - if ($count === 0) { - continue; - } - - $tests[] = "$count $type"; - } - - $this->output->writeln(['']); - - if (! empty($tests)) { - $this->output->writeln([ - sprintf( - ' Tests: %s (%s assertions)', - implode(', ', $tests), - $testResult->numberOfAssertions() - ), - ]); - } - - $this->output->writeln([ - sprintf( - ' Duration: %ss', - number_format($duration->asSeconds(), 2, '.', '') + $telemetry = new Info( + new Snapshot( + $snapshotDuration, + MemoryUsage::fromBytes(0), + MemoryUsage::fromBytes(0), ), - ]); + $telemetryDuration, + MemoryUsage::fromBytes(0), + \PHPUnit\Event\Telemetry\Duration::fromSecondsAndNanoseconds(0, 0), + MemoryUsage::fromBytes(0), + ); - $this->output->writeln(''); + $style->writeRecap($state, $telemetry, $testResult); } } diff --git a/src/Support/StateGenerator.php b/src/Support/StateGenerator.php new file mode 100644 index 00000000..a78d499e --- /dev/null +++ b/src/Support/StateGenerator.php @@ -0,0 +1,102 @@ +testErroredEvents() as $testResultEvent) { + assert($testResultEvent instanceof Errored); + $state->add(\NunoMaduro\Collision\Adapters\Phpunit\TestResult::fromTestCase( + $testResultEvent->test(), + TestResult::FAIL, + $testResultEvent->throwable() + )); + } + + foreach ($testResult->testFailedEvents() as $testResultEvent) { + $state->add(TestResult::fromTestCase( + $testResultEvent->test(), + TestResult::FAIL, + $testResultEvent->throwable() + )); + } + + foreach ($testResult->testMarkedIncompleteEvents() as $testResultEvent) { + $state->add(TestResult::fromTestCase( + $testResultEvent->test(), + TestResult::INCOMPLETE, + $testResultEvent->throwable() + )); + } + + foreach ($testResult->testConsideredRiskyEvents() as $riskyEvents) { + foreach ($riskyEvents as $riskyEvent) { + $state->add(TestResult::fromTestCase( + $riskyEvent->test(), + TestResult::RISKY, + Throwable::from(new IncompleteTestError($riskyEvent->message())) + )); + } + } + + foreach ($testResult->testSkippedEvents() as $testResultEvent) { + if ($testResultEvent->message() === '__TODO__') { + $state->add(TestResult::fromTestCase($testResultEvent->test(), TestResult::TODO)); + + continue; + } + + $state->add(TestResult::fromTestCase( + $testResultEvent->test(), + TestResult::SKIPPED, + Throwable::from(new SkippedWithMessageException($testResultEvent->message())) + )); + } + + $numberOfPassedTests = $testResult->numberOfTestsRun() + - $testResult->numberOfTestErroredEvents() + - $testResult->numberOfTestFailedEvents() + - $testResult->numberOfTestSkippedEvents() + - $testResult->numberOfTestsWithTestConsideredRiskyEvents() + - $testResult->numberOfTestMarkedIncompleteEvents(); + + for ($i = 0; $i < $numberOfPassedTests; $i++) { + $state->add(TestResult::fromTestCase( + + new TestMethod( + /** @phpstan-ignore-next-line */ + "$i", + /** @phpstan-ignore-next-line */ + '', + '', + 1, + /** @phpstan-ignore-next-line */ + TestDox::fromClassNameAndMethodName('', ''), + MetadataCollection::fromArray([]), + TestDataCollection::fromArray([]) + ), + TestResult::PASS + )); + } + + return $state; + } +} From 1658176fe1486b7c924e69dc3468c46165fac04a Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Tue, 7 Feb 2023 00:34:48 +0000 Subject: [PATCH 24/63] Uses default gray --- src/Plugins/Parallel/Support/CompactPrinter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index e32dff72..a348751c 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -58,7 +58,7 @@ final class CompactPrinter public function line(string $message): void { - render("{$message}"); + render("{$message}"); } public function descriptionItem(string $item): void From f48ae48677cdd770d643c8470c19af2c4cb551f8 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Tue, 7 Feb 2023 00:55:48 +0000 Subject: [PATCH 25/63] Fixes test name --- .../Parallel/Paratest/ResultPrinter.php | 46 +++++------ .../Parallel/Support/CompactPrinter.php | 80 ++++++++++--------- 2 files changed, 65 insertions(+), 61 deletions(-) diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php index 7837ab36..49f83ec3 100644 --- a/src/Plugins/Parallel/Paratest/ResultPrinter.php +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -4,18 +4,6 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Paratest; -use NunoMaduro\Collision\Adapters\Phpunit\TestResult as CollisionTestResult; -use ParaTest\Options; -use Pest\Plugins\Parallel\Support\CompactPrinter; -use Pest\Support\StateGenerator; -use PHPUnit\Event\Test\Errored; -use PHPUnit\TestRunner\TestResult\TestResult; -use PHPUnit\TextUI\Output\Printer; -use SebastianBergmann\Timer\Duration; -use SplFileInfo; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Output\OutputInterface; - use function assert; use function fclose; use function feof; @@ -24,28 +12,40 @@ use function fread; use function fseek; use function ftell; use function fwrite; +use ParaTest\Options; +use Pest\Plugins\Parallel\Support\CompactPrinter; +use Pest\Support\StateGenerator; +use PHPUnit\TestRunner\TestResult\TestResult; +use PHPUnit\TextUI\Output\Printer; use function preg_replace; +use SebastianBergmann\Timer\Duration; +use SplFileInfo; use function sprintf; use function strlen; +use Symfony\Component\Console\Formatter\OutputFormatter; +use Symfony\Component\Console\Output\OutputInterface; /** @internal */ final class ResultPrinter { public readonly Printer $printer; + private readonly CompactPrinter $compactPrinter; - private int $totalCases = 0; + private int $totalCases = 0; /** @var resource|null */ private $teamcityLogFileHandle; - /** @var array */ + + /** @var array */ private array $tailPositions; public function __construct( private readonly OutputInterface $output, private readonly Options $options ) { - $this->printer = new class ($this->output) implements Printer { + $this->printer = new class($this->output) implements Printer + { public function __construct( private readonly OutputInterface $output, ) { @@ -88,7 +88,7 @@ final class ResultPrinter ); } - /** @param list $teamcityFiles */ + /** @param array $teamcityFiles */ public function printFeedback(SplFileInfo $progressFile, array $teamcityFiles): void { if ($this->options->needsTeamcity) { @@ -115,17 +115,17 @@ final class ResultPrinter return; } - $feedbackItems = preg_replace('/ +\\d+ \\/ \\d+ \\( ?\\d+%\\)\\s*/', '', $feedbackItems); + $feedbackItems = (string) preg_replace('/ +\\d+ \\/ \\d+ \\( ?\\d+%\\)\\s*/', '', $feedbackItems); $actualTestCount = strlen($feedbackItems); - for ($index = 0; $index < $actualTestCount; ++$index) { + for ($index = 0; $index < $actualTestCount; $index++) { $this->printFeedbackItem($feedbackItems[$index]); } } /** - * @param list $teamcityFiles - * @param list $testdoxFiles + * @param array $teamcityFiles + * @param array $testdoxFiles */ public function printResults(TestResult $testResult, array $teamcityFiles, array $testdoxFiles, Duration $duration): void { @@ -134,7 +134,7 @@ final class ResultPrinter if ($this->teamcityLogFileHandle !== null) { fwrite($this->teamcityLogFileHandle, $teamcityProgress); - $resource = $this->teamcityLogFileHandle; + $resource = $this->teamcityLogFileHandle; $this->teamcityLogFileHandle = null; fclose($resource); } @@ -166,7 +166,7 @@ final class ResultPrinter $this->compactPrinter->descriptionItem($item); } - /** @param list $files */ + /** @param array $files */ private function tailMultiple(array $files): string { $content = ''; @@ -183,7 +183,7 @@ final class ResultPrinter private function tail(SplFileInfo $file): string { - $path = $file->getPathname(); + $path = $file->getPathname(); $handle = fopen($path, 'r'); assert($handle !== false); $fseek = fseek($handle, $this->tailPositions[$path] ?? 0); diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index a348751c..d5f35f17 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -4,43 +4,46 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Support; -use NunoMaduro\Collision\Adapters\Phpunit\Printers\DefaultPrinter; use NunoMaduro\Collision\Adapters\Phpunit\State; use NunoMaduro\Collision\Adapters\Phpunit\Style; -use NunoMaduro\Collision\Adapters\Phpunit\TestResult; -use NunoMaduro\Collision\Exceptions\ShouldNotHappen; -use Pest\Logging\TeamCity\Converter; -use Pest\Support\StateGenerator; -use PHPUnit\Event\Code\TestDox; -use PHPUnit\Event\Code\TestMethod; -use PHPUnit\Event\Event; use PHPUnit\Event\Telemetry\HRTime; use PHPUnit\Event\Telemetry\Info; use PHPUnit\Event\Telemetry\MemoryUsage; use PHPUnit\Event\Telemetry\Snapshot; -use PHPUnit\Event\Test\Passed; -use PHPUnit\Event\TestData\TestDataCollection; -use PHPUnit\Framework\ExpectationFailedException; -use PHPUnit\Framework\IncompleteTestError; -use PHPUnit\Metadata\MetadataCollection; use PHPUnit\TestRunner\TestResult\TestResult as PHPUnitTestResult; -use ReflectionClass; use SebastianBergmann\Timer\Duration; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Termwind\Terminal; use function Termwind\render; -use function Termwind\renderUsing; +use Termwind\Terminal; use function Termwind\terminal; +/** + * @internal + */ final class CompactPrinter { private readonly Terminal $terminal; - private readonly ConsoleOutputInterface $output; + private readonly Style $style; private int $compactProcessed = 0; - private int $compactSymbolsPerLine = 0; + + private readonly int $compactSymbolsPerLine; + + /** + * @var array> + */ + private const LOOKUP_TABLE = [ + '.' => ['gray', '.'], + 'S' => ['yellow', 's'], + 'I' => ['yellow', 'i'], + 'N' => ['yellow', 'i'], + 'R' => ['yellow', '!'], + 'W' => ['yellow', '!'], + 'E' => ['red', '⨯'], + 'F' => ['red', '⨯'], + ]; public function __construct() { @@ -51,32 +54,28 @@ final class CompactPrinter $this->compactSymbolsPerLine = $this->terminal->width() - 4; } + /** + * Output an empty line in the console. Useful for providing a little breathing room. + */ public function newLine(): void { render('
'); } + /** + * Write the given message to the console, adding vertical and horizontal padding. + */ public function line(string $message): void { - render("{$message}"); + render("{$message}"); } + /** + * Outputs the given description item from the ProgressPrinter as a gorgeous, colored symbol. + */ public function descriptionItem(string $item): void { - // TODO: Support TODOs - - $lookupTable = [ - '.' => ['gray', '.'], - 'S' => ['yellow', 's'], - 'I' => ['yellow', 'i'], - 'N' => ['yellow', 'i'], - 'R' => ['yellow', '!'], - 'W' => ['yellow', '!'], - 'E' => ['red', '⨯'], - 'F' => ['red', '⨯'], - ]; - - [$color, $icon] = $lookupTable[$item] ?? $lookupTable['.']; + [$color, $icon] = self::LOOKUP_TABLE[$item] ?? self::LOOKUP_TABLE['.']; $symbolsOnCurrentLine = $this->compactProcessed % $this->compactSymbolsPerLine; @@ -94,19 +93,24 @@ final class CompactPrinter $this->compactProcessed++; } + /** + * Outputs all errors from the given state using Collision's beautiful error output. + */ public function errors(State $state): void { $this->style->writeErrorsSummary($state, false); } + /** + * Outputs a clean recap of the test run, including the number of tests, assertions, and failures. + */ public function recap(State $state, PHPUnitTestResult $testResult, Duration $duration): void { assert($this->output instanceof ConsoleOutput); - $style = new Style($this->output); - $nanoseconds = $duration->asNanoseconds() % 1000000000; - $snapshotDuration = HRTime::fromSecondsAndNanoseconds((int)$duration->asSeconds(), $nanoseconds); - $telemetryDuration = \PHPUnit\Event\Telemetry\Duration::fromSecondsAndNanoseconds((int)$duration->asSeconds(), $nanoseconds); + $nanoseconds = $duration->asNanoseconds() % 1_000_000_000; + $snapshotDuration = HRTime::fromSecondsAndNanoseconds((int) $duration->asSeconds(), $nanoseconds); + $telemetryDuration = \PHPUnit\Event\Telemetry\Duration::fromSecondsAndNanoseconds((int) $duration->asSeconds(), $nanoseconds); $telemetry = new Info( new Snapshot( @@ -120,6 +124,6 @@ final class CompactPrinter MemoryUsage::fromBytes(0), ); - $style->writeRecap($state, $telemetry, $testResult); + $this->style->writeRecap($state, $telemetry, $testResult); } } From 6338d762fa37fca59ee754609972938227dc3e3f Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Tue, 7 Feb 2023 01:06:31 +0000 Subject: [PATCH 26/63] wip --- bin/pest-wrapper.php | 14 +++++++------- src/Plugins/Parallel.php | 10 ++++++---- src/Plugins/Parallel/Handlers/Laravel.php | 6 ++---- src/Plugins/Parallel/Handlers/Parallel.php | 16 +++++++++------- src/Plugins/Parallel/Paratest/WrapperRunner.php | 10 +++++----- src/Plugins/Parallel/Support/CompactPrinter.php | 2 ++ 6 files changed, 31 insertions(+), 27 deletions(-) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index 210e7976..49f21966 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -45,13 +45,13 @@ $bootPest = (static function (): void { 'phpunit-argv:', ]); - require_once __DIR__ . '/../overrides/Runner/TestSuiteLoader.php'; - require_once __DIR__ . '/../overrides/Runner/Filter/NameFilterIterator.php'; + require_once __DIR__.'/../overrides/Runner/TestSuiteLoader.php'; + require_once __DIR__.'/../overrides/Runner/Filter/NameFilterIterator.php'; $composerAutoloadFiles = [ - dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'autoload.php', - dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php', - dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php', + dirname(__DIR__, 3).DIRECTORY_SEPARATOR.'autoload.php', + dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php', + dirname(__DIR__).DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php', ]; foreach ($composerAutoloadFiles as $file) { @@ -69,8 +69,8 @@ $bootPest = (static function (): void { assert(isset($getopt['progress-file']) && is_string($getopt['progress-file'])); assert(isset($getopt['testresult-file']) && is_string($getopt['testresult-file'])); - assert(!isset($getopt['teamcity-file']) || is_string($getopt['teamcity-file'])); - assert(!isset($getopt['testdox-file']) || is_string($getopt['testdox-file'])); + assert(! isset($getopt['teamcity-file']) || is_string($getopt['teamcity-file'])); + assert(! isset($getopt['testdox-file']) || is_string($getopt['testdox-file'])); assert(isset($getopt['phpunit-argv']) && is_string($getopt['phpunit-argv'])); $phpunitArgv = unserialize($getopt['phpunit-argv'], ['allowed_classes' => false]); diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 76e69b43..a7fb0ea9 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -17,7 +17,7 @@ final class Parallel implements HandlesArguments { use HandleArguments; - private array $handlers = [ + private const HANDLERS = [ \Pest\Plugins\Parallel\Handlers\Parallel::class, \Pest\Plugins\Parallel\Handlers\Laravel::class, ]; @@ -36,8 +36,10 @@ final class Parallel implements HandlesArguments private function argumentsContainParallelFlags(array $arguments): bool { - return $this->hasArgument('--parallel', $arguments) - || $this->hasArgument('-p', $arguments); + if ($this->hasArgument('--parallel', $arguments)) { + return true; + } + return $this->hasArgument('-p', $arguments); } private function runTestSuiteInParallel(array $arguments): int @@ -49,7 +51,7 @@ final class Parallel implements HandlesArguments } $filteredArguments = array_reduce( - $this->handlers, + self::HANDLERS, fn($arguments, $handler) => (new $handler())->handle($arguments), $arguments ); diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 50f34950..9d05a8fd 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -27,7 +27,7 @@ final class Laravel $this->setLaravelParallelRunner(); foreach ($args as $value) { - if (str_starts_with($value, '--runner')) { + if (str_starts_with((string) $value, '--runner')) { $args = $this->popArgument($value, $args); } } @@ -41,9 +41,7 @@ final class Laravel exit('Using parallel with Pest requires Laravel v8.55.0 or higher.'); } - ParallelRunner::resolveRunnerUsing(function (Options $options, OutputInterface $output): RunnerInterface { - return new WrapperRunner($options, $output); - }); + ParallelRunner::resolveRunnerUsing(fn(Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); } private static function isALaravelApplication(): bool diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 0e88c3bb..0ff58839 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -14,16 +14,18 @@ use Symfony\Component\Console\Input\ArgvInput; final class Parallel { use HandleArguments; + /** + * @var string[] + */ + private const ARGS_TO_REMOVE = [ + '--parallel', + '-p', + '--no-output', + ]; public function handle(array $args): array { - $argsToRemove = [ - '--parallel', - '-p', - '--no-output', - ]; - - $args = array_reduce($argsToRemove, fn ($args, $arg) => $this->popArgument($arg, $args), $args); + $args = array_reduce(self::ARGS_TO_REMOVE, fn ($args, $arg): array => $this->popArgument($arg, $args), $args); return $this->pushArgument('--runner=' . WrapperRunner::class, $args); } diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 1c0d87c8..9d2dd3b2 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -44,7 +44,7 @@ final class WrapperRunner implements RunnerInterface { private const CYCLE_SLEEP = 10000; private readonly ResultPrinter $printer; - private Timer $timer; + private readonly Timer $timer; /** @var non-empty-string[] */ private array $pending = []; @@ -131,7 +131,7 @@ final class WrapperRunner implements RunnerInterface { $batchSize = $this->options->maxBatchSize; - while (count($this->pending) > 0 && count($this->workers) > 0) { + while ($this->pending !== [] && $this->workers !== []) { foreach ($this->workers as $token => $worker) { if (! $worker->isRunning()) { throw $worker->getWorkerCrashedException(); @@ -178,7 +178,7 @@ final class WrapperRunner implements RunnerInterface private function waitForAllToFinish(): void { $stopped = []; - while (count($this->workers) > 0) { + while ($this->workers !== []) { foreach ($this->workers as $index => $worker) { if ($worker->isRunning()) { if (! isset($stopped[$index]) && $worker->isFree()) { @@ -307,7 +307,7 @@ final class WrapperRunner implements RunnerInterface return $exitcode; } - protected function generateCodeCoverageReports(): void + private function generateCodeCoverageReports(): void { if ($this->coverageFiles === []) { return; @@ -361,7 +361,7 @@ final class WrapperRunner implements RunnerInterface $tests = array_filter( $suiteLoader->files, - fn(string $filename) => ! str_ends_with($filename, "eval()'d code") + fn(string $filename): bool => ! str_ends_with($filename, "eval()'d code") ); return [...$tests, ...TestSuite::getInstance()->tests->getFilenames()]; diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index d5f35f17..f6921a4a 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -25,6 +25,8 @@ final class CompactPrinter { private readonly Terminal $terminal; + private readonly ConsoleOutputInterface $output; + private readonly Style $style; private int $compactProcessed = 0; From f94ea9ba0ddc2a3f9c0e73d9a7d348b72b483a8c Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 13:04:52 +0000 Subject: [PATCH 27/63] WIP --- src/Plugins/Parallel.php | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index a7fb0ea9..48d2370b 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -6,9 +6,12 @@ use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Concerns\HandleArguments; +use Pest\Plugins\Parallel\Handlers\Laravel; use Pest\Support\Arr; use Pest\Support\Container; use Pest\TestSuite; +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Output\OutputInterface; use function Pest\version; @@ -18,15 +21,14 @@ final class Parallel implements HandlesArguments use HandleArguments; private const HANDLERS = [ - \Pest\Plugins\Parallel\Handlers\Parallel::class, - \Pest\Plugins\Parallel\Handlers\Laravel::class, + Parallel\Handlers\Parallel::class, + Laravel::class, ]; public function handleArguments(array $arguments): array { if ($this->argumentsContainParallelFlags($arguments)) { - $exitCode = $this->runTestSuiteInParallel($arguments); - exit($exitCode); + exit($this->runTestSuiteInParallel($arguments)); } $this->markTestSuiteAsParallelSubProcessIfRequired(); @@ -47,7 +49,7 @@ final class Parallel implements HandlesArguments if (! class_exists(ParaTestCommand::class)) { $this->askUserToInstallParatest(); - return 1; + return Command::FAILURE; } $filteredArguments = array_reduce( @@ -56,16 +58,9 @@ final class Parallel implements HandlesArguments $arguments ); - $testSuite = TestSuite::getInstance(); + $exitCode = $this->paratestCommand()->run(new ArgvInput($filteredArguments)); - $command = ParaTestCommand::applicationFactory($testSuite->rootPath); - $command->setAutoExit(false); - $command->setName('Pest'); - $command->setVersion(version()); - $exitCode = $command->run(new ArgvInput($filteredArguments)); - - $exitCode = (new CallsAddsOutput())($exitCode); - exit($exitCode); + return (new CallsAddsOutput())($exitCode); } private function markTestSuiteAsParallelSubProcessIfRequired(): void @@ -82,4 +77,14 @@ final class Parallel implements HandlesArguments 'Please run composer require --dev brianium/paratest to install ParaTest.', ]); } + + private function paratestCommand(): Application + { + $command = ParaTestCommand::applicationFactory(TestSuite::getInstance()->rootPath); + $command->setAutoExit(false); + $command->setName('Pest'); + $command->setVersion(version()); + + return $command; + } } From dd840f8861d7c56acd2e7b6830396bf363c16fc5 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 13:06:28 +0000 Subject: [PATCH 28/63] WIP --- src/Plugins/Parallel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 48d2370b..f7d308ce 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -73,8 +73,8 @@ final class Parallel implements HandlesArguments private function askUserToInstallParatest(): void { Container::getInstance()->get(OutputInterface::class)->writeln([ - 'Parallel support requires ParaTest, which is not installed.', - 'Please run composer require --dev brianium/paratest to install ParaTest.', + 'Pest Parallel requires ParaTest to run.', + 'Please run composer require --dev brianium/paratest.', ]); } From a34001faf01e3d96a151b365691aa5a43976d272 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 13:48:42 +0000 Subject: [PATCH 29/63] WIP --- bin/pest-wrapper.php | 1 - src/Logging/TeamCity/Converter.php | 7 --- src/Plugins/Parallel.php | 10 ++-- src/Plugins/Parallel/Handlers/Laravel.php | 6 +- src/Plugins/Parallel/Handlers/Parallel.php | 4 +- .../Parallel/Paratest/WrapperRunner.php | 56 +++++++++++-------- src/Support/StateGenerator.php | 2 +- 7 files changed, 45 insertions(+), 41 deletions(-) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index 49f21966..c32d9e1f 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -6,7 +6,6 @@ use ParaTest\WrapperRunner\ApplicationForWrapperWorker; use ParaTest\WrapperRunner\WrapperWorker; use Pest\ConfigLoader; use Pest\Kernel; -use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Actions\CallsHandleArguments; use Pest\Support\Container; use Pest\TestSuite; diff --git a/src/Logging/TeamCity/Converter.php b/src/Logging/TeamCity/Converter.php index 0a1e592e..1f0de446 100644 --- a/src/Logging/TeamCity/Converter.php +++ b/src/Logging/TeamCity/Converter.php @@ -5,21 +5,14 @@ declare(strict_types=1); namespace Pest\Logging\TeamCity; use NunoMaduro\Collision\Adapters\Phpunit\State; -use NunoMaduro\Collision\Adapters\Phpunit\TestResult; use Pest\Exceptions\ShouldNotHappen; use Pest\Support\StateGenerator; use Pest\Support\Str; use PHPUnit\Event\Code\Test; -use PHPUnit\Event\Code\TestDox; use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\Code\Throwable; -use PHPUnit\Event\Test\Errored; -use PHPUnit\Event\TestData\TestDataCollection; use PHPUnit\Event\TestSuite\TestSuite; use PHPUnit\Framework\Exception as FrameworkException; -use PHPUnit\Framework\IncompleteTestError; -use PHPUnit\Framework\SkippedWithMessageException; -use PHPUnit\Metadata\MetadataCollection; use PHPUnit\TestRunner\TestResult\TestResult as PhpUnitTestResult; /** diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index f7d308ce..d7465b62 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -1,20 +1,21 @@ hasArgument('--parallel', $arguments)) { return true; } + return $this->hasArgument('-p', $arguments); } @@ -54,7 +56,7 @@ final class Parallel implements HandlesArguments $filteredArguments = array_reduce( self::HANDLERS, - fn($arguments, $handler) => (new $handler())->handle($arguments), + fn ($arguments, $handler) => (new $handler())->handle($arguments), $arguments ); diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 9d05a8fd..46d20c6b 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -37,17 +37,17 @@ final class Laravel private function setLaravelParallelRunner(): void { - if (!method_exists(ParallelRunner::class, 'resolveRunnerUsing')) { + if (! method_exists(ParallelRunner::class, 'resolveRunnerUsing')) { exit('Using parallel with Pest requires Laravel v8.55.0 or higher.'); } - ParallelRunner::resolveRunnerUsing(fn(Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); + ParallelRunner::resolveRunnerUsing(fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); } private static function isALaravelApplication(): bool { return class_exists(\Illuminate\Foundation\Application::class) && class_exists(\Illuminate\Testing\ParallelRunner::class) - && !class_exists(\Orchestra\Testbench\TestCase::class); + && ! class_exists(\Orchestra\Testbench\TestCase::class); } } diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 0ff58839..8a5199b0 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -6,7 +6,6 @@ namespace Pest\Plugins\Parallel\Handlers; use Pest\Plugins\Concerns\HandleArguments; use Pest\Plugins\Parallel\Paratest\WrapperRunner; -use Symfony\Component\Console\Input\ArgvInput; /** * @internal @@ -14,6 +13,7 @@ use Symfony\Component\Console\Input\ArgvInput; final class Parallel { use HandleArguments; + /** * @var string[] */ @@ -27,6 +27,6 @@ final class Parallel { $args = array_reduce(self::ARGS_TO_REMOVE, fn ($args, $arg): array => $this->popArgument($arg, $args), $args); - return $this->pushArgument('--runner=' . WrapperRunner::class, $args); + return $this->pushArgument('--runner='.WrapperRunner::class, $args); } } diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 9d2dd3b2..7424152e 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -4,6 +4,15 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Paratest; +use function array_merge; +use function array_merge_recursive; +use function array_shift; +use function assert; +use function count; +use const DIRECTORY_SEPARATOR; +use function dirname; +use function file_get_contents; +use function max; use ParaTest\Coverage\CoverageMerger; use ParaTest\JUnit\LogMerger; use ParaTest\JUnit\Writer; @@ -19,49 +28,47 @@ use PHPUnit\TestRunner\TestResult\TestResult; use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry; use PHPUnit\TextUI\ShellExitCodeCalculator; use PHPUnit\Util\ExcludeList; +use function realpath; use SebastianBergmann\Timer\Timer; use SplFileInfo; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\PhpExecutableFinder; - -use function array_merge; -use function array_merge_recursive; -use function array_shift; -use function assert; -use function count; -use function dirname; -use function file_get_contents; -use function max; -use function realpath; use function unlink; use function unserialize; use function usleep; -use const DIRECTORY_SEPARATOR; - /** @internal */ final class WrapperRunner implements RunnerInterface { private const CYCLE_SLEEP = 10000; + private readonly ResultPrinter $printer; + private readonly Timer $timer; /** @var non-empty-string[] */ private array $pending = []; - private int $exitcode = -1; + + private int $exitcode = -1; + /** @var array */ private array $workers = []; + /** @var array */ private array $batches = []; /** @var list */ private array $testresultFiles = []; + /** @var list */ private array $coverageFiles = []; + /** @var list */ private array $junitFiles = []; + /** @var list */ private array $teamcityFiles = []; + /** @var list */ private array $testdoxFiles = []; @@ -78,12 +85,12 @@ final class WrapperRunner implements RunnerInterface $this->timer = new Timer(); $wrapper = realpath( - dirname(__DIR__, 4) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'pest-wrapper.php', + dirname(__DIR__, 4).DIRECTORY_SEPARATOR.'bin'.DIRECTORY_SEPARATOR.'pest-wrapper.php', ); assert($wrapper !== false); $phpFinder = new PhpExecutableFinder(); - $phpBin = $phpFinder->find(false); + $phpBin = $phpFinder->find(false); assert($phpBin !== false); $parameters = [$phpBin]; $parameters = array_merge($parameters, $phpFinder->findArguments()); @@ -100,13 +107,16 @@ final class WrapperRunner implements RunnerInterface public function run(): int { - ExcludeList::addDirectory(dirname(__DIR__)); + $directory = dirname(__DIR__); + assert(strlen($directory) > 0); + ExcludeList::addDirectory($directory); + TestResultFacade::init(); EventFacade::seal(); - $suiteLoader = new SuiteLoader($this->options, $this->output, $this->codeCoverageFilterRegistry,); + $suiteLoader = new SuiteLoader($this->options, $this->output, $this->codeCoverageFilterRegistry); $this->pending = $this->getTestFiles($suiteLoader); - $result = TestResultFacade::result(); + $result = TestResultFacade::result(); $this->printer->setTestCount($suiteLoader->testCount); $this->printer->start(); @@ -122,7 +132,7 @@ final class WrapperRunner implements RunnerInterface private function startWorkers(): void { - for ($token = 1; $token <= $this->options->processes; ++$token) { + for ($token = 1; $token <= $this->options->processes; $token++) { $this->startWorker($token); } } @@ -143,7 +153,7 @@ final class WrapperRunner implements RunnerInterface $this->flushWorker($worker); - if ($batchSize !== null && $batchSize !== 0 && $this->batches[$token] === $batchSize) { + if ($batchSize !== 0 && $this->batches[$token] === $batchSize) { $this->destroyWorker($token); $worker = $this->startWorker($token); } @@ -339,7 +349,7 @@ final class WrapperRunner implements RunnerInterface ); } - /** @param list $files */ + /** @param list $files */ private function clearFiles(array $files): void { foreach ($files as $file) { @@ -357,11 +367,11 @@ final class WrapperRunner implements RunnerInterface */ private function getTestFiles(SuiteLoader $suiteLoader): array { - $this->debug(sprintf("Found %d test file%s", count($suiteLoader->files), count($suiteLoader->files) === 1 ? '' : 's')); + $this->debug(sprintf('Found %d test file%s', count($suiteLoader->files), count($suiteLoader->files) === 1 ? '' : 's')); $tests = array_filter( $suiteLoader->files, - fn(string $filename): bool => ! str_ends_with($filename, "eval()'d code") + fn (string $filename): bool => ! str_ends_with($filename, "eval()'d code") ); return [...$tests, ...TestSuite::getInstance()->tests->getFilenames()]; diff --git a/src/Support/StateGenerator.php b/src/Support/StateGenerator.php index a78d499e..21bd1794 100644 --- a/src/Support/StateGenerator.php +++ b/src/Support/StateGenerator.php @@ -82,7 +82,7 @@ final class StateGenerator $state->add(TestResult::fromTestCase( new TestMethod( - /** @phpstan-ignore-next-line */ + /** @phpstan-ignore-next-line */ "$i", /** @phpstan-ignore-next-line */ '', From 87ee5ef36b42965d99e856c094240c4a27ef5a11 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 17:05:41 +0000 Subject: [PATCH 30/63] Style --- src/Plugins/Parallel.php | 3 ++- .../Parallel/Paratest/CleanConsoleOutput.php | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/Plugins/Parallel/Paratest/CleanConsoleOutput.php diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index d7465b62..c3f9c52b 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -8,6 +8,7 @@ use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Concerns\HandleArguments; +use Pest\Plugins\Parallel\Paratest\CleanConsoleOutput; use Pest\Support\Arr; use Pest\Support\Container; use Pest\TestSuite; @@ -60,7 +61,7 @@ final class Parallel implements HandlesArguments $arguments ); - $exitCode = $this->paratestCommand()->run(new ArgvInput($filteredArguments)); + $exitCode = $this->paratestCommand()->run(new ArgvInput($filteredArguments), new CleanConsoleOutput()); return (new CallsAddsOutput())($exitCode); } diff --git a/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php new file mode 100644 index 00000000..f4ffbc2f --- /dev/null +++ b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php @@ -0,0 +1,22 @@ +isOpeningHeadline($message)) { + return; + } + + parent::doWrite($message, $newline); + } + + private function isOpeningHeadline(string $message): bool + { + return str_contains($message, 'by Sebastian Bergmann and contributors.'); + } +} From d5495a7e3ad7763f08fd0b57c1af04b89850e420 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 17:06:50 +0000 Subject: [PATCH 31/63] WIP --- composer.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/composer.json b/composer.json index 8c5342fe..66776cef 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,9 @@ "pestphp/pest-plugin": "^2.0.0", "phpunit/phpunit": "^10.0.7" }, + "conflict": { + "brianium/paratest": "<7.0.4" + }, "version": "2.x-dev", "autoload": { "psr-4": { From 17cda168e1edcfe84ac787fdfb9507acfa1f2273 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Wed, 8 Feb 2023 17:08:22 +0000 Subject: [PATCH 32/63] WIP --- src/Plugins/Parallel/Paratest/CleanConsoleOutput.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php index f4ffbc2f..91a95023 100644 --- a/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php +++ b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php @@ -6,6 +6,9 @@ use Symfony\Component\Console\Output\ConsoleOutput; class CleanConsoleOutput extends ConsoleOutput { + /** + * @inheritdoc + */ protected function doWrite(string $message, bool $newline): void { if ($this->isOpeningHeadline($message)) { @@ -15,6 +18,10 @@ class CleanConsoleOutput extends ConsoleOutput parent::doWrite($message, $newline); } + /** + * Determines if the given message is the descriptive message + * that Paratest outputs when it starts. + */ private function isOpeningHeadline(string $message): bool { return str_contains($message, 'by Sebastian Bergmann and contributors.'); From aff11486b22a178472b5fbeeb87d73d8385c2b25 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 10:22:49 +0000 Subject: [PATCH 33/63] Fixes --dirty integration --- src/Repositories/TestRepository.php | 44 ++++++++++++++++------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/Repositories/TestRepository.php b/src/Repositories/TestRepository.php index e20b67ab..d505b883 100644 --- a/src/Repositories/TestRepository.php +++ b/src/Repositories/TestRepository.php @@ -54,22 +54,22 @@ final class TestRepository */ public function getFilenames(): array { - $testCases = array_filter($this->testCases, static fn (TestCaseFactory $testCase): bool => $testCase->methodsUsingOnly() !== []); + $testCases = array_filter($this->testCases, static fn(TestCaseFactory $testCase): bool => $testCase->methodsUsingOnly() !== []); if ($testCases === []) { $testCases = $this->testCases; } - return array_values(array_map(static fn (TestCaseFactory $factory): string => $factory->filename, $testCases)); + return array_values(array_map(static fn(TestCaseFactory $factory): string => $factory->filename, $testCases)); } /** * Uses the given `$testCaseClass` on the given `$paths`. * - * @param array $classOrTraits - * @param array $groups - * @param array $paths - * @param array $hooks + * @param array $classOrTraits + * @param array $groups + * @param array $paths + * @param array $hooks */ public function use(array $classOrTraits, array $groups, array $paths, array $hooks): void { @@ -125,13 +125,19 @@ final class TestRepository */ public function set(TestCaseMethodFactory $method): void { - foreach ($this->testCaseMethodFilters as $filter) { - if (! $filter->accept($method)) { + foreach ($this->testCaseFilters as $filter) { + if (!$filter->accept($method->filename)) { return; } } - if (! array_key_exists($method->filename, $this->testCases)) { + foreach ($this->testCaseMethodFilters as $filter) { + if (!$filter->accept($method)) { + return; + } + } + + if (!array_key_exists($method->filename, $this->testCases)) { $this->testCases[$method->filename] = new TestCaseFactory($method->filename); } @@ -143,19 +149,17 @@ final class TestRepository */ public function makeIfNeeded(string $filename): void { - if (! array_key_exists($filename, $this->testCases)) { + if (!array_key_exists($filename, $this->testCases)) { return; } - $accepted = array_reduce( - $this->testCaseFilters, - fn (bool $carry, TestCaseFilter $filter): bool => $carry && $filter->accept($filename), - true, - ); - - if ($accepted) { - $this->make($this->testCases[$filename]); + foreach ($this->testCaseFilters as $filter) { + if (!$filter->accept($filename)) { + return; + } } + + $this->make($this->testCases[$filename]); } /** @@ -163,12 +167,12 @@ final class TestRepository */ private function make(TestCaseFactory $testCase): void { - $startsWith = static fn (string $target, string $directory): bool => Str::startsWith($target, $directory.DIRECTORY_SEPARATOR); + $startsWith = static fn(string $target, string $directory): bool => Str::startsWith($target, $directory . DIRECTORY_SEPARATOR); foreach ($this->uses as $path => $uses) { [$classOrTraits, $groups, $hooks] = $uses; - if ((! is_dir($path) && $testCase->filename === $path) || (is_dir($path) && $startsWith($testCase->filename, $path))) { + if ((!is_dir($path) && $testCase->filename === $path) || (is_dir($path) && $startsWith($testCase->filename, $path))) { foreach ($classOrTraits as $class) { /** @var string $class */ if (class_exists($class)) { From 2561d47bb538299232d828f6a72fc28b8445f7a7 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 11:12:59 +0000 Subject: [PATCH 34/63] WIP --- src/Plugins/Parallel.php | 30 ++++++++++++++----- .../Contracts/HandlesSubprocessArguments.php | 10 +++++++ src/Plugins/Parallel/Handlers/Laravel.php | 25 +++++++++++----- src/Plugins/Parallel/Handlers/Parallel.php | 7 +++-- src/Plugins/Parallel/Handlers/Pest.php | 20 +++++++++++++ src/Repositories/TestRepository.php | 14 +++++++++ 6 files changed, 88 insertions(+), 18 deletions(-) create mode 100644 src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php create mode 100644 src/Plugins/Parallel/Handlers/Pest.php diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index c3f9c52b..133c1a58 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -8,6 +8,7 @@ use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Concerns\HandleArguments; +use Pest\Plugins\Parallel\Contracts\HandlesSubprocessArguments; use Pest\Plugins\Parallel\Paratest\CleanConsoleOutput; use Pest\Support\Arr; use Pest\Support\Container; @@ -24,6 +25,7 @@ final class Parallel implements HandlesArguments private const HANDLERS = [ Parallel\Handlers\Parallel::class, + Parallel\Handlers\Pest::class, Parallel\Handlers\Laravel::class, ]; @@ -33,7 +35,9 @@ final class Parallel implements HandlesArguments exit($this->runTestSuiteInParallel($arguments)); } - $this->markTestSuiteAsParallelSubProcessIfRequired(); + if ((int) Arr::get($_SERVER, 'PARATEST') === 1) { + return $this->runSubprocessHandlers($arguments); + } return $arguments; } @@ -55,9 +59,14 @@ final class Parallel implements HandlesArguments return Command::FAILURE; } + $handlers = array_filter( + array_map(fn ($handler) => Container::getInstance()->get($handler), self::HANDLERS), + fn ($handler) => $handler instanceof HandlesArguments, + ); + $filteredArguments = array_reduce( - self::HANDLERS, - fn ($arguments, $handler) => (new $handler())->handle($arguments), + $handlers, + fn ($arguments, HandlesArguments $handler) => $handler->handleArguments($arguments), $arguments ); @@ -66,11 +75,18 @@ final class Parallel implements HandlesArguments return (new CallsAddsOutput())($exitCode); } - private function markTestSuiteAsParallelSubProcessIfRequired(): void + private function runSubprocessHandlers(array $arguments): array { - if ((int) Arr::get($_SERVER, 'PARATEST') === 1) { - $_SERVER['PEST_PARALLEL'] = 1; - } + $handlers = array_filter( + array_map(fn ($handler) => Container::getInstance()->get($handler), self::HANDLERS), + fn ($handler) => $handler instanceof HandlesSubprocessArguments, + ); + + return array_reduce( + $handlers, + fn ($arguments, HandlesSubprocessArguments $handler) => $handler->handleSubprocessArguments($arguments), + $arguments + ); } private function askUserToInstallParatest(): void diff --git a/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php b/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php new file mode 100644 index 00000000..4fb08457 --- /dev/null +++ b/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php @@ -0,0 +1,10 @@ +setLaravelParallelRunner(); - foreach ($args as $value) { + foreach ($arguments as $value) { if (str_starts_with((string) $value, '--runner')) { - $args = $this->popArgument($value, $args); + $arguments = $this->popArgument($value, $arguments); } } - return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $args); + return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $arguments); } private function setLaravelParallelRunner(): void @@ -46,8 +49,14 @@ final class Laravel private static function isALaravelApplication(): bool { - return class_exists(\Illuminate\Foundation\Application::class) - && class_exists(\Illuminate\Testing\ParallelRunner::class) + return InstalledVersions::isInstalled('laravel/framework', false) && ! class_exists(\Orchestra\Testbench\TestCase::class); } + + public function handleSubprocessArguments(array $arguments): array + { + putenv('LARAVEL_PARALLEL_TESTING=1'); + + return $arguments; + } } diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 8a5199b0..71f6d4d6 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -4,13 +4,14 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; +use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Concerns\HandleArguments; use Pest\Plugins\Parallel\Paratest\WrapperRunner; /** * @internal */ -final class Parallel +final class Parallel implements HandlesArguments { use HandleArguments; @@ -23,9 +24,9 @@ final class Parallel '--no-output', ]; - public function handle(array $args): array + public function handleArguments(array $arguments): array { - $args = array_reduce(self::ARGS_TO_REMOVE, fn ($args, $arg): array => $this->popArgument($arg, $args), $args); + $args = array_reduce(self::ARGS_TO_REMOVE, fn ($args, $arg): array => $this->popArgument($arg, $args), $arguments); return $this->pushArgument('--runner='.WrapperRunner::class, $args); } diff --git a/src/Plugins/Parallel/Handlers/Pest.php b/src/Plugins/Parallel/Handlers/Pest.php new file mode 100644 index 00000000..726d687e --- /dev/null +++ b/src/Plugins/Parallel/Handlers/Pest.php @@ -0,0 +1,20 @@ +testCaseMethodFilters[] = $filter; } + /** + * @param class-string $filter + */ + public function hasTestCaseMethodFilter(string $filter): bool + { + foreach ($this->testCaseMethodFilters as $testCaseMethodFilter) { + if ($testCaseMethodFilter instanceof $filter) { + return true; + } + } + + return false; + } + /** * Gets the test case factory from the given filename. */ From f107fdfa082ee74867bc88237cf8a6895f5fe21a Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 11:47:38 +0000 Subject: [PATCH 35/63] WIP --- src/Plugins/Parallel/Handlers/Laravel.php | 58 ++++++++++++++++++----- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 05bb7cf8..0e1a6b8f 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -5,22 +5,32 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; use Composer\InstalledVersions; +use Illuminate\Support\Facades\App; use Illuminate\Testing\ParallelRunner; +use NunoMaduro\Collision\Adapters\Laravel\Commands\TestCommand; use ParaTest\Options; use ParaTest\RunnerInterface; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Concerns\HandleArguments; -use Pest\Plugins\Parallel\Contracts\HandlesSubprocessArguments; use Pest\Plugins\Parallel\Paratest\WrapperRunner; +use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Process\PhpProcess; /** * @internal */ -final class Laravel implements HandlesArguments, HandlesSubprocessArguments +final class Laravel implements HandlesArguments { use HandleArguments; + public function __construct( + private readonly OutputInterface $output, + private readonly InputInterface $input, + ) + { + } + public function handleArguments(array $arguments): array { if (! self::isALaravelApplication()) { @@ -29,19 +39,15 @@ final class Laravel implements HandlesArguments, HandlesSubprocessArguments $this->setLaravelParallelRunner(); - foreach ($arguments as $value) { - if (str_starts_with((string) $value, '--runner')) { - $arguments = $this->popArgument($value, $arguments); - } - } + $arguments = $this->setEnvironmentVariables($arguments); - return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $arguments); + return $this->useLaravelRunner($arguments); } private function setLaravelParallelRunner(): void { if (! method_exists(ParallelRunner::class, 'resolveRunnerUsing')) { - exit('Using parallel with Pest requires Laravel v8.55.0 or higher.'); + $this->output->writeln(' Using parallel with Pest requires Laravel v8.55.0 or higher.'); } ParallelRunner::resolveRunnerUsing(fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); @@ -53,10 +59,38 @@ final class Laravel implements HandlesArguments, HandlesSubprocessArguments && ! class_exists(\Orchestra\Testbench\TestCase::class); } - public function handleSubprocessArguments(array $arguments): array + /** + * @param array $arguments + * @return array + */ + private function setEnvironmentVariables(array $arguments): array { - putenv('LARAVEL_PARALLEL_TESTING=1'); + $_ENV['LARAVEL_PARALLEL_TESTING'] = 1; - return $arguments; + if ($this->hasArgument('--recreate-databases', $arguments)) { + $_ENV['LARAVEL_PARALLEL_TESTING_RECREATE_DATABASES'] = 1; + } + + if ($this->hasArgument('--drop-databases', $arguments)) { + $_ENV['LARAVEL_PARALLEL_TESTING_DROP_DATABASES'] = 1; + } + + $arguments = $this->popArgument('--recreate-databases', $arguments); + return $this->popArgument('--drop-databases', $arguments); + } + + /** + * @param array $arguments + * @return array + */ + private function useLaravelRunner(array $arguments): array + { + foreach ($arguments as $value) { + if (str_starts_with((string)$value, '--runner')) { + $arguments = $this->popArgument($value, $arguments); + } + } + + return $this->pushArgument('--runner=\Illuminate\Testing\ParallelRunner', $arguments); } } From 2ae06a0e2dec8c9b804fa6eaf1673b1110a31a56 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 11:50:52 +0000 Subject: [PATCH 36/63] WIP --- src/Plugins/Parallel/Handlers/Laravel.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 0e1a6b8f..e188d386 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -13,6 +13,7 @@ use ParaTest\RunnerInterface; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Concerns\HandleArguments; use Pest\Plugins\Parallel\Paratest\WrapperRunner; +use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\PhpProcess; @@ -47,7 +48,8 @@ final class Laravel implements HandlesArguments private function setLaravelParallelRunner(): void { if (! method_exists(ParallelRunner::class, 'resolveRunnerUsing')) { - $this->output->writeln(' Using parallel with Pest requires Laravel v8.55.0 or higher.'); + $this->output->writeln(' Using parallel with Pest requires Laravel v8.55.0 or higher.'); + exit(Command::FAILURE); } ParallelRunner::resolveRunnerUsing(fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); From 8d33c9dc8937c7d7c26ca24c57bc829fcbb26035 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 12:48:26 +0000 Subject: [PATCH 37/63] WIP --- src/Plugins/Parallel/Handlers/Laravel.php | 3 --- src/Repositories/TestRepository.php | 14 -------------- 2 files changed, 17 deletions(-) diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index e188d386..665494fa 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -5,9 +5,7 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; use Composer\InstalledVersions; -use Illuminate\Support\Facades\App; use Illuminate\Testing\ParallelRunner; -use NunoMaduro\Collision\Adapters\Laravel\Commands\TestCommand; use ParaTest\Options; use ParaTest\RunnerInterface; use Pest\Contracts\Plugins\HandlesArguments; @@ -16,7 +14,6 @@ use Pest\Plugins\Parallel\Paratest\WrapperRunner; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Process\PhpProcess; /** * @internal diff --git a/src/Repositories/TestRepository.php b/src/Repositories/TestRepository.php index c3b9e699..d505b883 100644 --- a/src/Repositories/TestRepository.php +++ b/src/Repositories/TestRepository.php @@ -112,20 +112,6 @@ final class TestRepository $this->testCaseMethodFilters[] = $filter; } - /** - * @param class-string $filter - */ - public function hasTestCaseMethodFilter(string $filter): bool - { - foreach ($this->testCaseMethodFilters as $testCaseMethodFilter) { - if ($testCaseMethodFilter instanceof $filter) { - return true; - } - } - - return false; - } - /** * Gets the test case factory from the given filename. */ From c319a8e84cf6c76f2b5c5d8d5e22c73cf3f11609 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 13:20:34 +0000 Subject: [PATCH 38/63] WIP --- src/Plugins/Parallel/Paratest/WrapperRunner.php | 6 ++++-- .../SubFolder/SubFolder/UsesPerSubDirectory.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 7424152e..13eb1737 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -369,12 +369,14 @@ final class WrapperRunner implements RunnerInterface { $this->debug(sprintf('Found %d test file%s', count($suiteLoader->files), count($suiteLoader->files) === 1 ? '' : 's')); - $tests = array_filter( + $phpunitTests = array_filter( $suiteLoader->files, fn (string $filename): bool => ! str_ends_with($filename, "eval()'d code") ); - return [...$tests, ...TestSuite::getInstance()->tests->getFilenames()]; + $pestTests = TestSuite::getInstance()->tests->getFilenames(); + + return [...$phpunitTests, ...$pestTests]; } private function debug(string $message): void diff --git a/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php b/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php index 01bb8456..3136a08b 100644 --- a/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php +++ b/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php @@ -2,4 +2,4 @@ test('closure was bound to CustomTestCase', function () { $this->assertCustomInSubFolderTrue(); -}); +})->only(); From 757a98230e11446889bde0fdf9cb6a3de5e5131e Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 13:20:46 +0000 Subject: [PATCH 39/63] WIP --- .../SubFolder/SubFolder/UsesPerSubDirectory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php b/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php index 3136a08b..01bb8456 100644 --- a/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php +++ b/tests/PHPUnit/CustomTestCaseInSubFolders/SubFolder/SubFolder/UsesPerSubDirectory.php @@ -2,4 +2,4 @@ test('closure was bound to CustomTestCase', function () { $this->assertCustomInSubFolderTrue(); -})->only(); +}); From b7ec3c59b85302cab5d3c72949439c3f9f6c116c Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 14:48:42 +0000 Subject: [PATCH 40/63] WIP --- bin/pest-wrapper.php | 2 +- src/Plugins/Parallel.php | 7 ++++++- src/Plugins/Parallel/Handlers/Pest.php | 19 ++++++++++++++++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index c32d9e1f..2dbe4be5 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -77,7 +77,7 @@ $bootPest = (static function (): void { $bootPest(); - (new CallsHandleArguments())($phpunitArgv); + $phpunitArgv = (new CallsHandleArguments())($phpunitArgv); $application = new ApplicationForWrapperWorker( $phpunitArgv, diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 133c1a58..d4e39d73 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -29,13 +29,18 @@ final class Parallel implements HandlesArguments Parallel\Handlers\Laravel::class, ]; + public static function isInParallelProcess(): bool + { + return (int) Arr::get($_SERVER, 'PARATEST') === 1; + } + public function handleArguments(array $arguments): array { if ($this->argumentsContainParallelFlags($arguments)) { exit($this->runTestSuiteInParallel($arguments)); } - if ((int) Arr::get($_SERVER, 'PARATEST') === 1) { + if (self::isInParallelProcess()) { return $this->runSubprocessHandlers($arguments); } diff --git a/src/Plugins/Parallel/Handlers/Pest.php b/src/Plugins/Parallel/Handlers/Pest.php index 726d687e..75c12557 100644 --- a/src/Plugins/Parallel/Handlers/Pest.php +++ b/src/Plugins/Parallel/Handlers/Pest.php @@ -2,19 +2,32 @@ namespace Pest\Plugins\Parallel\Handlers; +use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Concerns\HandleArguments; use Pest\Plugins\Parallel\Contracts\HandlesSubprocessArguments; -use Pest\TestCaseMethodFilters\TodoTestCaseFilter; -use Pest\TestSuite; +use Pest\Plugins\Retry; -final class Pest implements HandlesSubprocessArguments +final class Pest implements HandlesArguments, HandlesSubprocessArguments { use HandleArguments; + public function handleArguments(array $arguments): array + { + if (Retry::$retrying) { + $_ENV['PEST_RETRY'] = '1'; + } + + return $arguments; + } + public function handleSubprocessArguments(array $arguments): array { $_SERVER['PEST_PARALLEL'] = '1'; + if (isset($_SERVER['PEST_RETRY'])) { + Retry::$retrying = true; + } + return $arguments; } } From 7fe7a01d43074d334b5f083870d7a03b77b8f88c Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 14:49:56 +0000 Subject: [PATCH 41/63] WIP --- tests/Hooks/BeforeAllTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Hooks/BeforeAllTest.php b/tests/Hooks/BeforeAllTest.php index 12524554..c318e1e2 100644 --- a/tests/Hooks/BeforeAllTest.php +++ b/tests/Hooks/BeforeAllTest.php @@ -1,11 +1,12 @@ calls baseline. This is because // two other tests are executed before this one due to filename ordering. $args = $_SERVER['argv'] ?? []; -$single = (isset($args[1]) && Str::endsWith(__FILE__, $args[1])) || ($_SERVER['PEST_PARALLEL'] ?? false); +$single = (isset($args[1]) && Str::endsWith(__FILE__, $args[1])) || Parallel::isInParallelProcess(); $offset = $single ? 0 : 2; uses()->beforeAll(function () use ($offset) { From 504fd0470531541787f4b2f85da7372194989da8 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 15:49:30 +0000 Subject: [PATCH 42/63] WIP --- bin/pest-wrapper.php | 7 +++++++ src/Plugins/Parallel.php | 2 ++ 2 files changed, 9 insertions(+) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index 2dbe4be5..9e014558 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -8,6 +8,7 @@ use Pest\ConfigLoader; use Pest\Kernel; use Pest\Plugins\Actions\CallsHandleArguments; use Pest\Support\Container; +use Pest\TestCaseMethodFilters\TodoTestCaseFilter; use Pest\TestSuite; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\InputInterface; @@ -16,12 +17,18 @@ use Symfony\Component\Console\Output\OutputInterface; $bootPest = (static function (): void { $argv = new ArgvInput(); + $originalArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); + $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); $testSuite = TestSuite::getInstance( $rootPath, $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), ); + if ($originalArgv->hasParameterOption('--todo')) { + $testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter()); + } + $output = new ConsoleOutput(OutputInterface::VERBOSITY_NORMAL, true); $container = Container::getInstance(); diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index d4e39d73..7a959afe 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -64,6 +64,8 @@ final class Parallel implements HandlesArguments return Command::FAILURE; } + $_ENV['PEST_PARALLEL_ARGV'] = json_encode($_SERVER['argv']); + $handlers = array_filter( array_map(fn ($handler) => Container::getInstance()->get($handler), self::HANDLERS), fn ($handler) => $handler instanceof HandlesArguments, From e1406554fcb51ff9153ce84b8489d27f331eec40 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Fri, 10 Feb 2023 15:58:10 +0000 Subject: [PATCH 43/63] WIP --- bin/pest-wrapper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/pest-wrapper.php b/bin/pest-wrapper.php index 9e014558..7972b206 100644 --- a/bin/pest-wrapper.php +++ b/bin/pest-wrapper.php @@ -17,7 +17,7 @@ use Symfony\Component\Console\Output\OutputInterface; $bootPest = (static function (): void { $argv = new ArgvInput(); - $originalArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); + $parentProcessArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); $testSuite = TestSuite::getInstance( @@ -25,7 +25,7 @@ $bootPest = (static function (): void { $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), ); - if ($originalArgv->hasParameterOption('--todo')) { + if ($parentProcessArgv->hasParameterOption('--todo')) { $testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter()); } From 8eaf4859ff30ca71fa6b4784648dbb098666791a Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 11 Feb 2023 16:07:30 +0000 Subject: [PATCH 44/63] chore: different refactors --- bin/pest | 17 ++--- bin/{pest-wrapper.php => worker.php} | 28 +++---- composer.json | 2 +- phpstan.neon | 3 +- src/Kernel.php | 34 ++++++--- src/Plugins/Parallel.php | 49 +++++++++---- .../Contracts/HandlersWorkerArguments.php | 14 ++++ .../Contracts/HandlesSubprocessArguments.php | 10 --- src/Plugins/Parallel/Handlers/Laravel.php | 32 +++----- src/Plugins/Parallel/Handlers/Pest.php | 8 +- .../Parallel/Paratest/CleanConsoleOutput.php | 6 +- .../Parallel/Paratest/WrapperRunner.php | 73 +++++++++++-------- src/Repositories/TestRepository.php | 26 +++---- src/Subscribers/EnsureTeamCityEnabled.php | 2 +- src/Support/Container.php | 6 +- src/Support/StateGenerator.php | 15 ++-- tests/.snapshots/Failure.php.inc | 24 ------ tests/.snapshots/success.txt | 5 +- tests/Visual/Parallel.php | 18 +++++ 19 files changed, 207 insertions(+), 165 deletions(-) rename bin/{pest-wrapper.php => worker.php} (79%) create mode 100644 src/Plugins/Parallel/Contracts/HandlersWorkerArguments.php delete mode 100644 src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php create mode 100644 tests/Visual/Parallel.php diff --git a/bin/pest b/bin/pest index bae7b4eb..e99c09bb 100755 --- a/bin/pest +++ b/bin/pest @@ -17,6 +17,7 @@ use Symfony\Component\Console\Output\OutputInterface; $_SERVER['COLLISION_PRINTER'] = 'DefaultPrinter'; $args = $_SERVER['argv']; + $dirty = false; $todo = false; @@ -68,11 +69,11 @@ use Symfony\Component\Console\Output\OutputInterface; // Get $rootPath based on $autoloadPath $rootPath = dirname($autoloadPath, 2); - $argv = new ArgvInput(); + $input = new ArgvInput(); $testSuite = TestSuite::getInstance( $rootPath, - $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), + $input->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), ); if ($dirty) { @@ -83,19 +84,13 @@ use Symfony\Component\Console\Output\OutputInterface; $testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter()); } - $isDecorated = $argv->getParameterOption('--colors', 'always') !== 'never'; + $isDecorated = $input->getParameterOption('--colors', 'always') !== 'never'; $output = new ConsoleOutput(ConsoleOutput::VERBOSITY_NORMAL, $isDecorated); - $container = Container::getInstance(); - $container->add(TestSuite::class, $testSuite); - $container->add(OutputInterface::class, $output); - $container->add(InputInterface::class, $argv); - $container->add(Container::class, $container); + $kernel = Kernel::boot($testSuite, $input, $output); - $kernel = Kernel::boot(); - - $result = $kernel->handle($output, $args); + $result = $kernel->handle($args); $kernel->shutdown(); diff --git a/bin/pest-wrapper.php b/bin/worker.php similarity index 79% rename from bin/pest-wrapper.php rename to bin/worker.php index 7972b206..ca6e84c6 100644 --- a/bin/pest-wrapper.php +++ b/bin/worker.php @@ -7,37 +7,31 @@ use ParaTest\WrapperRunner\WrapperWorker; use Pest\ConfigLoader; use Pest\Kernel; use Pest\Plugins\Actions\CallsHandleArguments; -use Pest\Support\Container; use Pest\TestCaseMethodFilters\TodoTestCaseFilter; use Pest\TestSuite; use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\OutputInterface; $bootPest = (static function (): void { - $argv = new ArgvInput(); - $parentProcessArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); + $workerArgv = new ArgvInput(); + $masterArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); - $testSuite = TestSuite::getInstance( - $rootPath, - $argv->getParameterOption('--test-directory', (new ConfigLoader($rootPath))->getTestsDirectory()), - ); + $testSuite = TestSuite::getInstance($rootPath, $workerArgv->getParameterOption( + '--test-directory', + (new ConfigLoader($rootPath))->getTestsDirectory() + )); - if ($parentProcessArgv->hasParameterOption('--todo')) { + if ($masterArgv->hasParameterOption('--todo')) { $testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter()); } + $input = new ArgvInput(); + $output = new ConsoleOutput(OutputInterface::VERBOSITY_NORMAL, true); - $container = Container::getInstance(); - $container->add(TestSuite::class, $testSuite); - $container->add(OutputInterface::class, $output); - $container->add(InputInterface::class, $argv); - $container->add(Container::class, $container); - - Kernel::boot(); + Kernel::boot($testSuite, $input, $output); }); (static function () use ($bootPest): void { @@ -104,10 +98,10 @@ $bootPest = (static function (): void { $testPath = fgets(STDIN); if ($testPath === false || $testPath === WrapperWorker::COMMAND_EXIT) { $application->end(); + exit; } - // It must be a 1 byte string to ensure filesize() is equal to the number of tests executed $exitCode = $application->runTest(trim($testPath)); fwrite($statusFile, (string) $exitCode); diff --git a/composer.json b/composer.json index 66776cef..d4598946 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,7 @@ ] }, "require-dev": { - "brianium/paratest": "^7.0.4", + "brianium/paratest": "^7.0.5", "pestphp/pest-dev-tools": "^2.4.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5" diff --git a/phpstan.neon b/phpstan.neon index cb50f844..a75d68cc 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -12,9 +12,10 @@ parameters: reportUnmatchedIgnoredErrors: true ignoreErrors: + - "#Language construct isset\\(\\) should not be used.#" + - "#is not allowed to extend#" - "#with a nullable type declaration#" - "#type mixed is not subtype of native#" - - "#is not allowed to extend#" - "# with null as default value#" - "#has parameter \\$closure with default value.#" - "#has parameter \\$description with default value.#" diff --git a/src/Kernel.php b/src/Kernel.php index 39c0fd66..3914418e 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -11,7 +11,7 @@ use Pest\Plugins\Actions\CallsBoot; use Pest\Plugins\Actions\CallsShutdown; use Pest\Support\Container; use PHPUnit\TextUI\Application; -use PHPUnit\TextUI\Exception; +use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; /** @@ -36,7 +36,8 @@ final class Kernel * Creates a new Kernel instance. */ public function __construct( - private readonly Application $application + private readonly Application $application, + private readonly OutputInterface $output, ) { register_shutdown_function(function (): void { if (error_get_last() !== null) { @@ -50,8 +51,16 @@ final class Kernel /** * Boots the Kernel. */ - public static function boot(): self + public static function boot(TestSuite $testSuite, InputInterface $input, OutputInterface $output): self { + $container = Container::getInstance(); + + $container + ->add(TestSuite::class, $testSuite) + ->add(InputInterface::class, $input) + ->add(OutputInterface::class, $output) + ->add(Container::class, $container); + foreach (self::BOOTSTRAPPERS as $bootstrapper) { $bootstrapper = Container::getInstance()->get($bootstrapper); assert($bootstrapper instanceof Bootstrapper); @@ -61,24 +70,25 @@ final class Kernel (new CallsBoot())->__invoke(); - return new self(new Application()); + return new self( + new Application(), + $output, + ); } /** - * Handles the given argv. + * Runs the application, and returns the exit code. * - * @param array $argv - * - * @throws Exception + * @param array $args */ - public function handle(OutputInterface $output, array $argv): int + public function handle(array $args): int { - $argv = (new Plugins\Actions\CallsHandleArguments())->__invoke($argv); + $args = (new Plugins\Actions\CallsHandleArguments())->__invoke($args); try { - $this->application->run($argv); + $this->application->run($args); } catch (NoTestsFound) { - $output->writeln([ + $this->output->writeln([ '', ' INFO No tests found.', '', diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 7a959afe..07a48587 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -4,11 +4,12 @@ declare(strict_types=1); namespace Pest\Plugins; +use JsonException; use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Actions\CallsAddsOutput; use Pest\Plugins\Concerns\HandleArguments; -use Pest\Plugins\Parallel\Contracts\HandlesSubprocessArguments; +use Pest\Plugins\Parallel\Contracts\HandlersWorkerArguments; use Pest\Plugins\Parallel\Paratest\CleanConsoleOutput; use Pest\Support\Arr; use Pest\Support\Container; @@ -31,7 +32,11 @@ final class Parallel implements HandlesArguments public static function isInParallelProcess(): bool { - return (int) Arr::get($_SERVER, 'PARATEST') === 1; + $argvValue = Arr::get($_SERVER, 'PARATEST'); + + assert(is_string($argvValue) || is_int($argvValue) || is_null($argvValue)); + + return ((int) $argvValue) === 1; } public function handleArguments(array $arguments): array @@ -41,12 +46,15 @@ final class Parallel implements HandlesArguments } if (self::isInParallelProcess()) { - return $this->runSubprocessHandlers($arguments); + return $this->runWorkersHandlers($arguments); } return $arguments; } + /** + * @param array $arguments + */ private function argumentsContainParallelFlags(array $arguments): bool { if ($this->hasArgument('--parallel', $arguments)) { @@ -56,6 +64,11 @@ final class Parallel implements HandlesArguments return $this->hasArgument('-p', $arguments); } + /** + * @param array $arguments + * + * @throws JsonException + */ private function runTestSuiteInParallel(array $arguments): int { if (! class_exists(ParaTestCommand::class)) { @@ -64,16 +77,16 @@ final class Parallel implements HandlesArguments return Command::FAILURE; } - $_ENV['PEST_PARALLEL_ARGV'] = json_encode($_SERVER['argv']); + $_ENV['PEST_PARALLEL_ARGV'] = json_encode($_SERVER['argv'], JSON_THROW_ON_ERROR); $handlers = array_filter( - array_map(fn ($handler) => Container::getInstance()->get($handler), self::HANDLERS), - fn ($handler) => $handler instanceof HandlesArguments, + array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS), + fn ($handler): bool => $handler instanceof HandlesArguments, ); $filteredArguments = array_reduce( $handlers, - fn ($arguments, HandlesArguments $handler) => $handler->handleArguments($arguments), + fn ($arguments, HandlesArguments $handler): array => $handler->handleArguments($arguments), $arguments ); @@ -82,23 +95,30 @@ final class Parallel implements HandlesArguments return (new CallsAddsOutput())($exitCode); } - private function runSubprocessHandlers(array $arguments): array + /** + * @param array $arguments + * @return array + */ + private function runWorkersHandlers(array $arguments): array { $handlers = array_filter( - array_map(fn ($handler) => Container::getInstance()->get($handler), self::HANDLERS), - fn ($handler) => $handler instanceof HandlesSubprocessArguments, + array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS), + fn ($handler): bool => $handler instanceof HandlersWorkerArguments, ); return array_reduce( $handlers, - fn ($arguments, HandlesSubprocessArguments $handler) => $handler->handleSubprocessArguments($arguments), + fn ($arguments, HandlersWorkerArguments $handler): array => $handler->handleWorkerArguments($arguments), $arguments ); } private function askUserToInstallParatest(): void { - Container::getInstance()->get(OutputInterface::class)->writeln([ + /** @var OutputInterface $output */ + $output = Container::getInstance()->get(OutputInterface::class); + + $output->writeln([ 'Pest Parallel requires ParaTest to run.', 'Please run composer require --dev brianium/paratest.', ]); @@ -106,7 +126,10 @@ final class Parallel implements HandlesArguments private function paratestCommand(): Application { - $command = ParaTestCommand::applicationFactory(TestSuite::getInstance()->rootPath); + /** @var non-empty-string $rootPath */ + $rootPath = TestSuite::getInstance()->rootPath; + + $command = ParaTestCommand::applicationFactory($rootPath); $command->setAutoExit(false); $command->setName('Pest'); $command->setVersion(version()); diff --git a/src/Plugins/Parallel/Contracts/HandlersWorkerArguments.php b/src/Plugins/Parallel/Contracts/HandlersWorkerArguments.php new file mode 100644 index 00000000..f953ecb7 --- /dev/null +++ b/src/Plugins/Parallel/Contracts/HandlersWorkerArguments.php @@ -0,0 +1,14 @@ + $arguments + * @return array + */ + public function handleWorkerArguments(array $arguments): array; +} diff --git a/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php b/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php deleted file mode 100644 index 4fb08457..00000000 --- a/src/Plugins/Parallel/Contracts/HandlesSubprocessArguments.php +++ /dev/null @@ -1,10 +0,0 @@ -output->writeln(' Using parallel with Pest requires Laravel v8.55.0 or higher.'); - exit(Command::FAILURE); - } - - ParallelRunner::resolveRunnerUsing(fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output)); + ParallelRunner::resolveRunnerUsing( // @phpstan-ignore-line + fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output) + ); } private static function isALaravelApplication(): bool { - return InstalledVersions::isInstalled('laravel/framework', false) - && ! class_exists(\Orchestra\Testbench\TestCase::class); + if (! InstalledVersions::isInstalled('laravel/framework', false)) { + return false; + } + + return ! class_exists(\Orchestra\Testbench\TestCase::class); } /** - * @param array $arguments + * @param array $arguments * @return array */ private function setEnvironmentVariables(array $arguments): array @@ -75,17 +66,18 @@ final class Laravel implements HandlesArguments } $arguments = $this->popArgument('--recreate-databases', $arguments); + return $this->popArgument('--drop-databases', $arguments); } /** - * @param array $arguments + * @param array $arguments * @return array */ private function useLaravelRunner(array $arguments): array { foreach ($arguments as $value) { - if (str_starts_with((string)$value, '--runner')) { + if (str_starts_with($value, '--runner')) { $arguments = $this->popArgument($value, $arguments); } } diff --git a/src/Plugins/Parallel/Handlers/Pest.php b/src/Plugins/Parallel/Handlers/Pest.php index 75c12557..71b24647 100644 --- a/src/Plugins/Parallel/Handlers/Pest.php +++ b/src/Plugins/Parallel/Handlers/Pest.php @@ -1,13 +1,15 @@ */ private array $pending = []; - private int $exitcode = -1; + private int $exitCode = -1; - /** @var array */ + /** @var array */ private array $workers = []; /** @var array */ private array $batches = []; - /** @var list */ + /** @var array */ private array $testresultFiles = []; - /** @var list */ + /** @var array */ private array $coverageFiles = []; - /** @var list */ + /** @var array */ private array $junitFiles = []; - /** @var list */ + /** @var array */ private array $teamcityFiles = []; - /** @var list */ + /** @var array */ private array $testdoxFiles = []; - /** @var non-empty-string[] */ + /** @var array */ private readonly array $parameters; - private CodeCoverageFilterRegistry $codeCoverageFilterRegistry; + private readonly CodeCoverageFilterRegistry $codeCoverageFilterRegistry; public function __construct( private readonly Options $options, @@ -84,11 +86,11 @@ final class WrapperRunner implements RunnerInterface $this->printer = new ResultPrinter($output, $options); $this->timer = new Timer(); - $wrapper = realpath( - dirname(__DIR__, 4).DIRECTORY_SEPARATOR.'bin'.DIRECTORY_SEPARATOR.'pest-wrapper.php', + $worker = realpath( + dirname(__DIR__, 4).DIRECTORY_SEPARATOR.'bin'.DIRECTORY_SEPARATOR.'worker.php', ); - assert($wrapper !== false); + assert($worker !== false); $phpFinder = new PhpExecutableFinder(); $phpBin = $phpFinder->find(false); assert($phpBin !== false); @@ -99,7 +101,7 @@ final class WrapperRunner implements RunnerInterface $parameters = array_merge($parameters, $options->passthruPhp); } - $parameters[] = $wrapper; + $parameters[] = $worker; $this->parameters = $parameters; $this->codeCoverageFilterRegistry = new CodeCoverageFilterRegistry(); @@ -113,6 +115,7 @@ final class WrapperRunner implements RunnerInterface TestResultFacade::init(); EventFacade::seal(); + $suiteLoader = new SuiteLoader($this->options, $this->output, $this->codeCoverageFilterRegistry); $this->pending = $this->getTestFiles($suiteLoader); @@ -159,7 +162,7 @@ final class WrapperRunner implements RunnerInterface } if ( - $this->exitcode > 0 + $this->exitCode > 0 && $this->options->configuration->stopOnFailure() ) { $this->pending = []; @@ -177,7 +180,7 @@ final class WrapperRunner implements RunnerInterface private function flushWorker(WrapperWorker $worker): void { - $this->exitcode = max($this->exitcode, $worker->getExitCode()); + $this->exitCode = max($this->exitCode, $worker->getExitCode()); $this->printer->printFeedback( $worker->progressFile, $this->teamcityFiles, @@ -191,7 +194,7 @@ final class WrapperRunner implements RunnerInterface while ($this->workers !== []) { foreach ($this->workers as $index => $worker) { if ($worker->isRunning()) { - if (! isset($stopped[$index]) && $worker->isFree()) { + if (! array_key_exists($index, $stopped) && $worker->isFree()) { $worker->stop(); $stopped[$index] = true; } @@ -213,16 +216,22 @@ final class WrapperRunner implements RunnerInterface private function startWorker(int $token): WrapperWorker { + /** @var array $parameters */ + $parameters = $this->parameters; + $worker = new WrapperWorker( $this->output, $this->options, - $this->parameters, + $parameters, $token, ); + $worker->start(); + $this->batches[$token] = 0; $this->testresultFiles[] = $worker->testresultFile; + if (isset($worker->junitFile)) { $this->junitFiles[] = $worker->junitFile; } @@ -349,7 +358,7 @@ final class WrapperRunner implements RunnerInterface ); } - /** @param list $files */ + /** @param array $files */ private function clearFiles(array $files): void { foreach ($files as $file) { @@ -362,23 +371,29 @@ final class WrapperRunner implements RunnerInterface } /** - * We are doing this because the SuiteLoader returns filenames incorrectly - * for Pest tests. Ideally we should find a cleaner solution. + * Returns the test files to be executed. + * + * @return array */ private function getTestFiles(SuiteLoader $suiteLoader): array { $this->debug(sprintf('Found %d test file%s', count($suiteLoader->files), count($suiteLoader->files) === 1 ? '' : 's')); - $phpunitTests = array_filter( - $suiteLoader->files, - fn (string $filename): bool => ! str_ends_with($filename, "eval()'d code") - ); + /** @var array $files */ + $files = $suiteLoader->files; - $pestTests = TestSuite::getInstance()->tests->getFilenames(); - - return [...$phpunitTests, ...$pestTests]; + return [ + ...array_values(array_filter( + $files, + fn (string $filename): bool => ! str_ends_with($filename, "eval()'d code") + )), + ...TestSuite::getInstance()->tests->getFilenames(), + ]; } + /** + * Prints a debug message. + */ private function debug(string $message): void { if ($this->options->verbose) { diff --git a/src/Repositories/TestRepository.php b/src/Repositories/TestRepository.php index d505b883..d698fbd8 100644 --- a/src/Repositories/TestRepository.php +++ b/src/Repositories/TestRepository.php @@ -54,22 +54,22 @@ final class TestRepository */ public function getFilenames(): array { - $testCases = array_filter($this->testCases, static fn(TestCaseFactory $testCase): bool => $testCase->methodsUsingOnly() !== []); + $testCases = array_filter($this->testCases, static fn (TestCaseFactory $testCase): bool => $testCase->methodsUsingOnly() !== []); if ($testCases === []) { $testCases = $this->testCases; } - return array_values(array_map(static fn(TestCaseFactory $factory): string => $factory->filename, $testCases)); + return array_values(array_map(static fn (TestCaseFactory $factory): string => $factory->filename, $testCases)); } /** * Uses the given `$testCaseClass` on the given `$paths`. * - * @param array $classOrTraits - * @param array $groups - * @param array $paths - * @param array $hooks + * @param array $classOrTraits + * @param array $groups + * @param array $paths + * @param array $hooks */ public function use(array $classOrTraits, array $groups, array $paths, array $hooks): void { @@ -126,18 +126,18 @@ final class TestRepository public function set(TestCaseMethodFactory $method): void { foreach ($this->testCaseFilters as $filter) { - if (!$filter->accept($method->filename)) { + if (! $filter->accept($method->filename)) { return; } } foreach ($this->testCaseMethodFilters as $filter) { - if (!$filter->accept($method)) { + if (! $filter->accept($method)) { return; } } - if (!array_key_exists($method->filename, $this->testCases)) { + if (! array_key_exists($method->filename, $this->testCases)) { $this->testCases[$method->filename] = new TestCaseFactory($method->filename); } @@ -149,12 +149,12 @@ final class TestRepository */ public function makeIfNeeded(string $filename): void { - if (!array_key_exists($filename, $this->testCases)) { + if (! array_key_exists($filename, $this->testCases)) { return; } foreach ($this->testCaseFilters as $filter) { - if (!$filter->accept($filename)) { + if (! $filter->accept($filename)) { return; } } @@ -167,12 +167,12 @@ final class TestRepository */ private function make(TestCaseFactory $testCase): void { - $startsWith = static fn(string $target, string $directory): bool => Str::startsWith($target, $directory . DIRECTORY_SEPARATOR); + $startsWith = static fn (string $target, string $directory): bool => Str::startsWith($target, $directory.DIRECTORY_SEPARATOR); foreach ($this->uses as $path => $uses) { [$classOrTraits, $groups, $hooks] = $uses; - if ((!is_dir($path) && $testCase->filename === $path) || (is_dir($path) && $startsWith($testCase->filename, $path))) { + if ((! is_dir($path) && $testCase->filename === $path) || (is_dir($path) && $startsWith($testCase->filename, $path))) { foreach ($classOrTraits as $class) { /** @var string $class */ if (class_exists($class)) { diff --git a/src/Subscribers/EnsureTeamCityEnabled.php b/src/Subscribers/EnsureTeamCityEnabled.php index 5da91a70..bd6b1bf2 100644 --- a/src/Subscribers/EnsureTeamCityEnabled.php +++ b/src/Subscribers/EnsureTeamCityEnabled.php @@ -21,8 +21,8 @@ final class EnsureTeamCityEnabled implements ConfiguredSubscriber * Creates a new Configured Subscriber instance. */ public function __construct( - private readonly OutputInterface $output, private readonly InputInterface $input, + private readonly OutputInterface $output, private readonly TestSuite $testSuite, ) { } diff --git a/src/Support/Container.php b/src/Support/Container.php index 3afa9818..af15d003 100644 --- a/src/Support/Container.php +++ b/src/Support/Container.php @@ -47,10 +47,14 @@ final class Container /** * Adds the given instance to the container. + * + * @return $this */ - public function add(string $id, object|string $instance): void + public function add(string $id, object|string $instance): self { $this->instances[$id] = $instance; + + return $this; } /** diff --git a/src/Support/StateGenerator.php b/src/Support/StateGenerator.php index 21bd1794..7d06b7b4 100644 --- a/src/Support/StateGenerator.php +++ b/src/Support/StateGenerator.php @@ -23,12 +23,15 @@ final class StateGenerator $state = new State(); foreach ($testResult->testErroredEvents() as $testResultEvent) { - assert($testResultEvent instanceof Errored); - $state->add(\NunoMaduro\Collision\Adapters\Phpunit\TestResult::fromTestCase( - $testResultEvent->test(), - TestResult::FAIL, - $testResultEvent->throwable() - )); + if ($testResultEvent instanceof Errored) { + $state->add(TestResult::fromTestCase( + $testResultEvent->test(), + TestResult::FAIL, + $testResultEvent->throwable() + )); + } else { + $state->add(TestResult::fromBeforeFirstTestMethodErrored($testResultEvent)); + } } foreach ($testResult->testFailedEvents() as $testResultEvent) { diff --git a/tests/.snapshots/Failure.php.inc b/tests/.snapshots/Failure.php.inc index 6e04c2ba..e69de29b 100644 --- a/tests/.snapshots/Failure.php.inc +++ b/tests/.snapshots/Failure.php.inc @@ -1,24 +0,0 @@ -##teamcity[testSuiteStarted name='Tests/tests/Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] -##teamcity[testStarted name='it can fail with comparison' locationHint='pest_qn://tests/.tests/Failure.php::it can fail with comparison' flowId='1234'] -##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:342|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' type='comparisonFailure' actual='true' expected='false' flowId='1234'] -##teamcity[testFinished name='it can fail with comparison' duration='100000' flowId='1234'] -##teamcity[testStarted name='it can be ignored because of no assertions' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because of no assertions' flowId='1234'] -##teamcity[testIgnored name='it can be ignored because of no assertions' message='This test did not perform any assertions' details='' flowId='1234'] -##teamcity[testFinished name='it can be ignored because of no assertions' duration='100000' flowId='1234'] -##teamcity[testStarted name='it can be ignored because it is skipped' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because it is skipped' flowId='1234'] -##teamcity[testIgnored name='it can be ignored because it is skipped' message='This test was ignored.' details='' flowId='1234'] -##teamcity[testFinished name='it can be ignored because it is skipped' duration='100000' flowId='1234'] -##teamcity[testStarted name='it can fail' locationHint='pest_qn://tests/.tests/Failure.php::it can fail' flowId='1234'] -##teamcity[testFailed name='it can fail' message='oh noo' details='at tests/.tests/Failure.php:18|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:79' flowId='1234'] -##teamcity[testFinished name='it can fail' duration='100000' flowId='1234'] -##teamcity[testStarted name='it is not done yet' locationHint='pest_qn://tests/.tests/Failure.php::it is not done yet' flowId='1234'] -##teamcity[testIgnored name='it is not done yet' message='This test was ignored.' details='' flowId='1234'] -##teamcity[testFinished name='it is not done yet' duration='100000' flowId='1234'] -##teamcity[testStarted name='build this one.' locationHint='pest_qn://tests/.tests/Failure.php::build this one.' flowId='1234'] -##teamcity[testIgnored name='build this one.' message='This test was ignored.' details='' flowId='1234'] -##teamcity[testFinished name='build this one.' duration='100000' flowId='1234'] -##teamcity[testSuiteFinished name='Tests/tests/Failure' flowId='1234'] - - Tests: 2 failed, 1 risky, 2 todos, 1 skipped (2 assertions) - Duration: 1.00s - diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index cce6c952..6ab35fd6 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -896,6 +896,9 @@ PASS Tests\Visual\Help ✓ visual snapshot of help command output + PASS Tests\Visual\Parallel + ✓ parallel + PASS Tests\Visual\SingleTestOrDirectory ✓ allows to run a single test ✓ allows to run a directory @@ -914,4 +917,4 @@ PASS Tests\Visual\Version ✓ visual snapshot of help command output - Tests: 4 incomplete, 4 todos, 18 skipped, 633 passed (1552 assertions) \ No newline at end of file + Tests: 4 incomplete, 4 todos, 18 skipped, 634 passed (1554 assertions) \ No newline at end of file diff --git a/tests/Visual/Parallel.php b/tests/Visual/Parallel.php new file mode 100644 index 00000000..5b622870 --- /dev/null +++ b/tests/Visual/Parallel.php @@ -0,0 +1,18 @@ + 'DefaultPrinter', 'COLLISION_IGNORE_DURATION' => 'true'], + ); + + $process->run(); + + return preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $process->getOutput()); +}; + +test('parallel', function () use ($run) { + expect($run())->toContain('Running 650 tests using 3 processes') + ->toContain('Tests: 4 incomplete, 4 todos, 15 skipped, 627 passed (1546 assertions)'); +}); From 052b9e051b10918ed15ae9a1ddfdb5cdbfc91813 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 11 Feb 2023 17:39:46 +0000 Subject: [PATCH 45/63] fix: `--retry` with parallel --- .gitignore | 1 + .temp/test-results | 2 +- ...dConsoleArgument.php => InvalidOption.php} | 2 +- src/Plugins/Cache.php | 14 +++++++---- src/Plugins/Coverage.php | 1 + src/Plugins/Parallel.php | 22 +++++++++++++++-- src/Plugins/Parallel/Handlers/Pest.php | 17 +------------ src/Plugins/Retry.php | 8 ++++++- tests/.snapshots/Failure.php.inc | 24 +++++++++++++++++++ tests/Hooks/BeforeAllTest.php | 2 +- tests/Unit/Plugins/Retry.php | 2 +- 11 files changed, 67 insertions(+), 28 deletions(-) rename src/Exceptions/{InvalidConsoleArgument.php => InvalidOption.php} (76%) diff --git a/.gitignore b/.gitignore index 3a11a383..e411d82d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ coverage.xml *.swp *.swo .vscode/ +./temp/ diff --git a/.temp/test-results b/.temp/test-results index 56c4841c..8582145b 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.002,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.004,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0.001,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.001,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.87,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.086,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.085,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":1.648,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.084,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.079,"P\\Tests\\Visual\\Todo::todo":0.098,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.061,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.002,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.002,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.844,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.086,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.081,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.471,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.085,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.08,"P\\Tests\\Visual\\Todo::todo":0.103,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.066,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.836,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/src/Exceptions/InvalidConsoleArgument.php b/src/Exceptions/InvalidOption.php similarity index 76% rename from src/Exceptions/InvalidConsoleArgument.php rename to src/Exceptions/InvalidOption.php index a3e3ad30..515c0a42 100644 --- a/src/Exceptions/InvalidConsoleArgument.php +++ b/src/Exceptions/InvalidOption.php @@ -12,7 +12,7 @@ use Symfony\Component\Console\Exception\ExceptionInterface; /** * @internal */ -final class InvalidConsoleArgument extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace +final class InvalidOption extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace { /** * Creates a new Exception instance. diff --git a/src/Plugins/Cache.php b/src/Plugins/Cache.php index a31459e6..363ce20c 100644 --- a/src/Plugins/Cache.php +++ b/src/Plugins/Cache.php @@ -27,11 +27,15 @@ final class Cache implements HandlesArguments */ public function handleArguments(array $arguments): array { - $arguments = $this->pushArgument( - sprintf('--cache-directory=%s', realpath(self::TEMPORARY_FOLDER)), - $arguments - ); + if (! $this->hasArgument('--parallel', $arguments)) { + $arguments = $this->pushArgument( + sprintf('--cache-directory=%s', realpath(self::TEMPORARY_FOLDER)), + $arguments + ); - return $this->pushArgument('--cache-result', $arguments); + $arguments = $this->pushArgument('--cache-result', $arguments); + } + + return $arguments; } } diff --git a/src/Plugins/Coverage.php b/src/Plugins/Coverage.php index e3873657..07b21232 100644 --- a/src/Plugins/Coverage.php +++ b/src/Plugins/Coverage.php @@ -55,6 +55,7 @@ final class Coverage implements AddsOutput, HandlesArguments if ($original === sprintf('--%s', $option)) { return true; } + if (Str::startsWith($original, sprintf('--%s=', $option))) { return true; } diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 07a48587..e1111e69 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -30,7 +30,25 @@ final class Parallel implements HandlesArguments Parallel\Handlers\Laravel::class, ]; - public static function isInParallelProcess(): bool + /** + * If the + */ + public static function isCommand(): bool + { + // get binary name + Arr::get($_SERVER, 'argv.0'); + + $argvValue = Arr::get($_ENV, 'PARATEST'); + + assert(is_string($argvValue) || is_int($argvValue) || is_null($argvValue)); + + return ((int) $argvValue) === 1; + } + + /** + * If the + */ + public static function isWorker(): bool { $argvValue = Arr::get($_SERVER, 'PARATEST'); @@ -45,7 +63,7 @@ final class Parallel implements HandlesArguments exit($this->runTestSuiteInParallel($arguments)); } - if (self::isInParallelProcess()) { + if (self::isWorker()) { return $this->runWorkersHandlers($arguments); } diff --git a/src/Plugins/Parallel/Handlers/Pest.php b/src/Plugins/Parallel/Handlers/Pest.php index 71b24647..6dd64b36 100644 --- a/src/Plugins/Parallel/Handlers/Pest.php +++ b/src/Plugins/Parallel/Handlers/Pest.php @@ -4,32 +4,17 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; -use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Concerns\HandleArguments; use Pest\Plugins\Parallel\Contracts\HandlersWorkerArguments; -use Pest\Plugins\Retry; -final class Pest implements HandlesArguments, HandlersWorkerArguments +final class Pest implements HandlersWorkerArguments { use HandleArguments; - public function handleArguments(array $arguments): array - { - if (Retry::$retrying) { - $_ENV['PEST_RETRY'] = '1'; - } - - return $arguments; - } - public function handleWorkerArguments(array $arguments): array { $_SERVER['PEST_PARALLEL'] = '1'; - if (isset($_SERVER['PEST_RETRY'])) { - Retry::$retrying = true; - } - return $arguments; } } diff --git a/src/Plugins/Retry.php b/src/Plugins/Retry.php index e87eb8e9..0b37fe1a 100644 --- a/src/Plugins/Retry.php +++ b/src/Plugins/Retry.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace Pest\Plugins; use Pest\Contracts\Plugins\HandlesArguments; +use Pest\Exceptions\InvalidOption; /** * @internal @@ -19,10 +20,15 @@ final class Retry implements HandlesArguments public function handleArguments(array $arguments): array { if ($this->hasArgument('--retry', $arguments)) { + if ($this->hasArgument('--parallel', $arguments)) { + throw new InvalidOption('The --retry option is not supported when running in parallel.'); + } + $arguments = $this->popArgument('--retry', $arguments); $arguments = $this->pushArgument('--order-by=defects', $arguments); - $arguments = $this->pushArgument(' --stop-on-defect', $arguments); + + $arguments = $this->pushArgument('--stop-on-failure', $arguments); } return $arguments; diff --git a/tests/.snapshots/Failure.php.inc b/tests/.snapshots/Failure.php.inc index e69de29b..2acc8cc8 100644 --- a/tests/.snapshots/Failure.php.inc +++ b/tests/.snapshots/Failure.php.inc @@ -0,0 +1,24 @@ +##teamcity[testSuiteStarted name='Tests/tests/Failure' locationHint='file://tests/.tests/Failure.php' flowId='1234'] +##teamcity[testStarted name='it can fail with comparison' locationHint='pest_qn://tests/.tests/Failure.php::it can fail with comparison' flowId='1234'] +##teamcity[testFailed name='it can fail with comparison' message='Failed asserting that true matches expected false.' details='at src/Mixins/Expectation.php:342|nat src/Support/ExpectationPipeline.php:75|nat src/Support/ExpectationPipeline.php:79|nat src/Expectation.php:300|nat tests/.tests/Failure.php:6|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:89' type='comparisonFailure' actual='true' expected='false' flowId='1234'] +##teamcity[testFinished name='it can fail with comparison' duration='100000' flowId='1234'] +##teamcity[testStarted name='it can be ignored because of no assertions' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because of no assertions' flowId='1234'] +##teamcity[testIgnored name='it can be ignored because of no assertions' message='This test did not perform any assertions' details='' flowId='1234'] +##teamcity[testFinished name='it can be ignored because of no assertions' duration='100000' flowId='1234'] +##teamcity[testStarted name='it can be ignored because it is skipped' locationHint='pest_qn://tests/.tests/Failure.php::it can be ignored because it is skipped' flowId='1234'] +##teamcity[testIgnored name='it can be ignored because it is skipped' message='This test was ignored.' details='' flowId='1234'] +##teamcity[testFinished name='it can be ignored because it is skipped' duration='100000' flowId='1234'] +##teamcity[testStarted name='it can fail' locationHint='pest_qn://tests/.tests/Failure.php::it can fail' flowId='1234'] +##teamcity[testFailed name='it can fail' message='oh noo' details='at tests/.tests/Failure.php:18|nat src/Factories/TestCaseMethodFactory.php:105|nat src/Concerns/Testable.php:262|nat src/Support/ExceptionTrace.php:28|nat src/Concerns/Testable.php:262|nat src/Concerns/Testable.php:217|nat src/Kernel.php:89' flowId='1234'] +##teamcity[testFinished name='it can fail' duration='100000' flowId='1234'] +##teamcity[testStarted name='it is not done yet' locationHint='pest_qn://tests/.tests/Failure.php::it is not done yet' flowId='1234'] +##teamcity[testIgnored name='it is not done yet' message='This test was ignored.' details='' flowId='1234'] +##teamcity[testFinished name='it is not done yet' duration='100000' flowId='1234'] +##teamcity[testStarted name='build this one.' locationHint='pest_qn://tests/.tests/Failure.php::build this one.' flowId='1234'] +##teamcity[testIgnored name='build this one.' message='This test was ignored.' details='' flowId='1234'] +##teamcity[testFinished name='build this one.' duration='100000' flowId='1234'] +##teamcity[testSuiteFinished name='Tests/tests/Failure' flowId='1234'] + + Tests: 2 failed, 1 risky, 2 todos, 1 skipped (2 assertions) + Duration: 1.00s + diff --git a/tests/Hooks/BeforeAllTest.php b/tests/Hooks/BeforeAllTest.php index c318e1e2..c687fbfb 100644 --- a/tests/Hooks/BeforeAllTest.php +++ b/tests/Hooks/BeforeAllTest.php @@ -6,7 +6,7 @@ use Pest\Support\Str; // HACK: we have to determine our $_SERVER['globalHook-]>calls baseline. This is because // two other tests are executed before this one due to filename ordering. $args = $_SERVER['argv'] ?? []; -$single = (isset($args[1]) && Str::endsWith(__FILE__, $args[1])) || Parallel::isInParallelProcess(); +$single = (isset($args[1]) && Str::endsWith(__FILE__, $args[1])) || Parallel::isWorker(); $offset = $single ? 0 : 2; uses()->beforeAll(function () use ($offset) { diff --git a/tests/Unit/Plugins/Retry.php b/tests/Unit/Plugins/Retry.php index a95ef62a..b7877769 100644 --- a/tests/Unit/Plugins/Retry.php +++ b/tests/Unit/Plugins/Retry.php @@ -9,6 +9,6 @@ it('orders by defects and stop on defects if when --retry is used ', function () expect($arguments)->toBe([ '--order-by=defects', - ' --stop-on-defect', + '--stop-on-failure', ]); }); From e749af6d9174df83c3fb1a4a2564df092e1c3f2c Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sat, 11 Feb 2023 18:25:37 +0000 Subject: [PATCH 46/63] chore: updates dependencies and snapshots --- .gitignore | 2 +- composer.json | 2 +- tests/.snapshots/success.txt | 4 ++-- tests/.snapshots/todo.txt | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e411d82d..aca51d72 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,4 @@ coverage.xml *.swp *.swo .vscode/ -./temp/ +/.temp/ diff --git a/composer.json b/composer.json index d4598946..2e347ef8 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ ], "require": { "php": "^8.1.0", - "nunomaduro/collision": "^7.0.1", + "nunomaduro/collision": "^7.0.2", "nunomaduro/termwind": "^1.15.1", "pestphp/pest-plugin": "^2.0.0", "phpunit/phpunit": "^10.0.7" diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index 6ab35fd6..fa1b24fc 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -29,7 +29,7 @@ ✓ it does not append CoversNothing to other methods ✓ it throws exception if no class nor method has been found - PASS Tests\Features\DatasetsTests + PASS Tests\Features\DatasetsTests - 1 todo ✓ it throws exception if dataset does not exist ✓ it throws exception if dataset already exist ✓ it sets closures @@ -744,7 +744,7 @@ ✓ it allows access to the underlying expectNotToPerformAssertions method ✓ it allows performing no expectations without being risky - PASS Tests\Features\Todo + PASS Tests\Features\Todo - 3 todos ↓ something todo later ↓ something todo later chained ↓ something todo later chained and with function body diff --git a/tests/.snapshots/todo.txt b/tests/.snapshots/todo.txt index af7d2a8c..a3abcfe3 100644 --- a/tests/.snapshots/todo.txt +++ b/tests/.snapshots/todo.txt @@ -1,7 +1,7 @@ - PASS Tests\Features\DatasetsTests + TODO Tests\Features\DatasetsTests - 1 todo ↓ forbids to define tests in Datasets dirs and Datasets.php files - PASS Tests\Features\Todo + TODO Tests\Features\Todo - 3 todos ↓ something todo later ↓ something todo later chained ↓ something todo later chained and with function body From 0e9c1bc0f797473982e3206f7d45ed8137585296 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sun, 12 Feb 2023 01:06:02 +0000 Subject: [PATCH 47/63] fix: no `--dirty` tests found --- src/Contracts/Panicable.php | 23 +++++++ src/Exceptions/NoDirtyTestsFound.php | 38 ++++++++++++ src/Exceptions/NoTestsFound.php | 26 -------- src/Kernel.php | 4 +- src/Panic.php | 60 +++++++++++++++++++ .../GitDirtyTestCaseFilter.php | 5 +- 6 files changed, 126 insertions(+), 30 deletions(-) create mode 100644 src/Contracts/Panicable.php create mode 100644 src/Exceptions/NoDirtyTestsFound.php delete mode 100644 src/Exceptions/NoTestsFound.php create mode 100644 src/Panic.php diff --git a/src/Contracts/Panicable.php b/src/Contracts/Panicable.php new file mode 100644 index 00000000..f56b4b78 --- /dev/null +++ b/src/Contracts/Panicable.php @@ -0,0 +1,23 @@ +writeln([ + '', + ' INFO No "dirty" tests found.', + '', + ]); + } + + /** + * The exit code to be used. + */ + public function exitCode(): int + { + return 0; + } +} diff --git a/src/Exceptions/NoTestsFound.php b/src/Exceptions/NoTestsFound.php deleted file mode 100644 index 951b9ec7..00000000 --- a/src/Exceptions/NoTestsFound.php +++ /dev/null @@ -1,26 +0,0 @@ -application->run($args); - } catch (NoTestsFound) { + } catch (NoDirtyTestsFound) { $this->output->writeln([ '', ' INFO No tests found.', diff --git a/src/Panic.php b/src/Panic.php new file mode 100644 index 00000000..a14bf428 --- /dev/null +++ b/src/Panic.php @@ -0,0 +1,60 @@ +handle(); + + exit(1); + } + + /** + * Handles the panic. + */ + private function handle(): void + { + /** @var OutputInterface $output */ + $output = Container::getInstance()->get(OutputInterface::class); + + if ($this->throwable instanceof Contracts\Panicable) { + $this->throwable->render($output); + + exit($this->throwable->exitCode()); + } + + $writer = new Writer(null, $output); + + $inspector = new Inspector($this->throwable); + + $output->writeln(''); + $writer->write($inspector); + $output->writeln(''); + + exit(1); + } +} diff --git a/src/TestCaseFilters/GitDirtyTestCaseFilter.php b/src/TestCaseFilters/GitDirtyTestCaseFilter.php index 3083c3f1..c38e49c7 100644 --- a/src/TestCaseFilters/GitDirtyTestCaseFilter.php +++ b/src/TestCaseFilters/GitDirtyTestCaseFilter.php @@ -6,7 +6,8 @@ namespace Pest\TestCaseFilters; use Pest\Contracts\TestCaseFilter; use Pest\Exceptions\MissingDependency; -use Pest\Exceptions\NoTestsFound; +use Pest\Exceptions\NoDirtyTestsFound; +use Pest\Panic; use Pest\TestSuite; use Symfony\Component\Process\Process; @@ -66,7 +67,7 @@ final class GitDirtyTestCaseFilter implements TestCaseFilter $dirtyFiles = array_values($dirtyFiles); if ($dirtyFiles === []) { - throw new NoTestsFound(); + Panic::with(new NoDirtyTestsFound()); } $this->changedFiles = $dirtyFiles; From 8a58e984fe388ecc916c96e7f2eb67acb24a69a6 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sun, 12 Feb 2023 01:20:37 +0000 Subject: [PATCH 48/63] fix: gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index aca51d72..17e605fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea/* .idea/codeStyleSettings.xml +.temp/* composer.lock /vendor/ coverage.xml @@ -11,4 +12,3 @@ coverage.xml *.swp *.swo .vscode/ -/.temp/ From 735f131222b07db100ed53926ca9e8e35de2f0ee Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Sun, 12 Feb 2023 23:40:05 +0000 Subject: [PATCH 49/63] refacto: bootstrappers and parallel minor stuff --- .temp/test-results | 2 +- src/Bootstrappers/BootExceptionHandler.php | 2 +- src/Bootstrappers/BootFiles.php | 4 +- src/Bootstrappers/BootOverrides.php | 2 +- src/Bootstrappers/BootSubscribers.php | 6 +-- src/Bootstrappers/BootView.php | 3 ++ src/Plugins/Parallel/Handlers/Laravel.php | 56 ++++++++++++++-------- 7 files changed, 48 insertions(+), 27 deletions(-) diff --git a/.temp/test-results b/.temp/test-results index 8582145b..423b907f 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.002,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.002,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.844,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.086,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.081,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.471,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.085,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.08,"P\\Tests\\Visual\\Todo::todo":0.103,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.066,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.836,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.003,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.004,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.001,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/src/Bootstrappers/BootExceptionHandler.php b/src/Bootstrappers/BootExceptionHandler.php index 99119f41..bcebf5a6 100644 --- a/src/Bootstrappers/BootExceptionHandler.php +++ b/src/Bootstrappers/BootExceptionHandler.php @@ -13,7 +13,7 @@ use Pest\Contracts\Bootstrapper; final class BootExceptionHandler implements Bootstrapper { /** - * Boots the Exception Handler. + * Boots the "Collision" exception handler. */ public function boot(): void { diff --git a/src/Bootstrappers/BootFiles.php b/src/Bootstrappers/BootFiles.php index 44235b80..e4fbbe26 100644 --- a/src/Bootstrappers/BootFiles.php +++ b/src/Bootstrappers/BootFiles.php @@ -19,7 +19,7 @@ use SebastianBergmann\FileIterator\Facade as PhpUnitFileIterator; final class BootFiles implements Bootstrapper { /** - * The Pest convention. + * The structure of the tests directory. * * @var array */ @@ -32,7 +32,7 @@ final class BootFiles implements Bootstrapper ]; /** - * Boots the Subscribers. + * Boots the structure of the tests directory. */ public function boot(): void { diff --git a/src/Bootstrappers/BootOverrides.php b/src/Bootstrappers/BootOverrides.php index 9c637d0f..5341e8d1 100644 --- a/src/Bootstrappers/BootOverrides.php +++ b/src/Bootstrappers/BootOverrides.php @@ -23,7 +23,7 @@ final class BootOverrides implements Bootstrapper ]; /** - * Boots the Subscribers. + * Boots the list of files to be overridden. */ public function boot(): void { diff --git a/src/Bootstrappers/BootSubscribers.php b/src/Bootstrappers/BootSubscribers.php index 201afed0..b3f14659 100644 --- a/src/Bootstrappers/BootSubscribers.php +++ b/src/Bootstrappers/BootSubscribers.php @@ -16,7 +16,7 @@ use PHPUnit\Event\Subscriber; final class BootSubscribers implements Bootstrapper { /** - * The Kernel subscribers. + * The list of Subscribers. * * @var array> */ @@ -27,7 +27,7 @@ final class BootSubscribers implements Bootstrapper ]; /** - * Creates a new Subscriber instance. + * Creates a new instance of the Boot Subscribers. */ public function __construct( private readonly Container $container, @@ -35,7 +35,7 @@ final class BootSubscribers implements Bootstrapper } /** - * Boots the Subscribers. + * Boots the list of Subscribers. */ public function boot(): void { diff --git a/src/Bootstrappers/BootView.php b/src/Bootstrappers/BootView.php index 2ae4c509..680c78ce 100644 --- a/src/Bootstrappers/BootView.php +++ b/src/Bootstrappers/BootView.php @@ -13,6 +13,9 @@ use Symfony\Component\Console\Output\OutputInterface; */ final class BootView implements Bootstrapper { + /** + * Creates a new instance of the Boot View. + */ public function __construct( private readonly OutputInterface $output ) { diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 838f1480..41432c29 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Pest\Plugins\Parallel\Handlers; +use Closure; use Composer\InstalledVersions; use Illuminate\Testing\ParallelRunner; use ParaTest\Options; @@ -22,38 +23,53 @@ final class Laravel implements HandlesArguments public function handleArguments(array $arguments): array { - if (! self::isALaravelApplication()) { - return $arguments; - } + return self::whenUsingLaravel($arguments, function (array $arguments): array { + $this->ensureRunnerIsResolvable(); - $this->setLaravelParallelRunner(); + $arguments = $this->ensureEnvironmentVariables($arguments); - $arguments = $this->setEnvironmentVariables($arguments); - - return $this->useLaravelRunner($arguments); + return $this->ensureRunner($arguments); + }); } - private function setLaravelParallelRunner(): void + /** + * Executes the given closure when running Laravel. + * + * @param array $arguments + * @param CLosure(array): array $closure + * @return array + */ + private static function whenUsingLaravel(array $arguments, Closure $closure): array + { + $isLaravelApplication = InstalledVersions::isInstalled('laravel/framework', false); + $isLaravelPackage = class_exists(\Orchestra\Testbench\TestCase::class); + if ($isLaravelApplication) { + return $closure($arguments); + } + if ($isLaravelPackage) { + return $closure($arguments); + } + + return $arguments; + } + + /** + * Ensures the runner is resolvable. + */ + private function ensureRunnerIsResolvable(): void { ParallelRunner::resolveRunnerUsing( // @phpstan-ignore-line fn (Options $options, OutputInterface $output): RunnerInterface => new WrapperRunner($options, $output) ); } - private static function isALaravelApplication(): bool - { - if (! InstalledVersions::isInstalled('laravel/framework', false)) { - return false; - } - - return ! class_exists(\Orchestra\Testbench\TestCase::class); - } - /** + * Ensures the environment variables are set. + * * @param array $arguments * @return array */ - private function setEnvironmentVariables(array $arguments): array + private function ensureEnvironmentVariables(array $arguments): array { $_ENV['LARAVEL_PARALLEL_TESTING'] = 1; @@ -71,10 +87,12 @@ final class Laravel implements HandlesArguments } /** + * Ensure the runner is set. + * * @param array $arguments * @return array */ - private function useLaravelRunner(array $arguments): array + private function ensureRunner(array $arguments): array { foreach ($arguments as $value) { if (str_starts_with($value, '--runner')) { From b6fb81e506a4c752c0ac9c26b8a764e9c1ffb8ba Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Mon, 13 Feb 2023 03:08:36 +0000 Subject: [PATCH 50/63] refactor: parallel --- src/Plugins/Cache.php | 5 +- src/Plugins/Parallel/Handlers/Parallel.php | 5 +- src/Plugins/Parallel/Handlers/Pest.php | 3 ++ .../Parallel/Paratest/CleanConsoleOutput.php | 3 +- .../Parallel/Paratest/ResultPrinter.php | 21 ++++----- .../Parallel/Paratest/WrapperRunner.php | 3 +- .../Parallel/Support/CompactPrinter.php | 47 ++++++++++++------- 7 files changed, 52 insertions(+), 35 deletions(-) diff --git a/src/Plugins/Cache.php b/src/Plugins/Cache.php index 363ce20c..f1929b9d 100644 --- a/src/Plugins/Cache.php +++ b/src/Plugins/Cache.php @@ -14,6 +14,9 @@ final class Cache implements HandlesArguments { use HandleArguments; + /** + * The temporary folder. + */ private const TEMPORARY_FOLDER = __DIR__ .DIRECTORY_SEPARATOR .'..' @@ -23,7 +26,7 @@ final class Cache implements HandlesArguments .'.temp'; /** - * {@inheritdoc} + * Handles the arguments, adding the cache directory and the cache result arguments. */ public function handleArguments(array $arguments): array { diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 71f6d4d6..76829b60 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -16,7 +16,7 @@ final class Parallel implements HandlesArguments use HandleArguments; /** - * @var string[] + * The list of arguments to remove. */ private const ARGS_TO_REMOVE = [ '--parallel', @@ -24,6 +24,9 @@ final class Parallel implements HandlesArguments '--no-output', ]; + /** + * Handles the arguments, removing the ones that are not needed, and adding the "runner" argument. + */ public function handleArguments(array $arguments): array { $args = array_reduce(self::ARGS_TO_REMOVE, fn ($args, $arg): array => $this->popArgument($arg, $args), $arguments); diff --git a/src/Plugins/Parallel/Handlers/Pest.php b/src/Plugins/Parallel/Handlers/Pest.php index 6dd64b36..eb9132b7 100644 --- a/src/Plugins/Parallel/Handlers/Pest.php +++ b/src/Plugins/Parallel/Handlers/Pest.php @@ -11,6 +11,9 @@ final class Pest implements HandlersWorkerArguments { use HandleArguments; + /** + * Handles the arguments, adding the "PEST_PARALLEL" environment variable to the global $_SERVER. + */ public function handleWorkerArguments(array $arguments): array { $_SERVER['PEST_PARALLEL'] = '1'; diff --git a/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php index 90858267..2e91ac4c 100644 --- a/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php +++ b/src/Plugins/Parallel/Paratest/CleanConsoleOutput.php @@ -21,8 +21,7 @@ final class CleanConsoleOutput extends ConsoleOutput } /** - * Determines if the given message is the descriptive message - * that Paratest outputs when it starts. + * Removes the opening headline, witch is not needed. */ private function isOpeningHeadline(string $message): bool { diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php index 49f83ec3..c34e5616 100644 --- a/src/Plugins/Parallel/Paratest/ResultPrinter.php +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -28,12 +28,16 @@ use Symfony\Component\Console\Output\OutputInterface; /** @internal */ final class ResultPrinter { + /** + * The "native" printer. + */ public readonly Printer $printer; + /** + * The "compact" printer. + */ private readonly CompactPrinter $compactPrinter; - private int $totalCases = 0; - /** @var resource|null */ private $teamcityLogFileHandle; @@ -61,7 +65,7 @@ final class ResultPrinter } }; - $this->compactPrinter = new CompactPrinter(); + $this->compactPrinter = CompactPrinter::default(); if (! $this->options->configuration->hasLogfileTeamcity()) { return; @@ -72,17 +76,12 @@ final class ResultPrinter $this->teamcityLogFileHandle = $teamcityLogFileHandle; } - public function setTestCount(int $testCount): void - { - $this->totalCases = $testCount; - } - - public function start(): void + public function start(int $numberOfTests): void { $this->compactPrinter->line(sprintf( 'Running %d test%s using %d process%s', - $this->totalCases, - $this->totalCases === 1 ? '' : 's', + $numberOfTests, + $numberOfTests === 1 ? '' : 's', $this->options->processes, $this->options->processes === 1 ? '' : 'es') ); diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 8d100f98..e3426363 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -121,8 +121,7 @@ final class WrapperRunner implements RunnerInterface $result = TestResultFacade::result(); - $this->printer->setTestCount($suiteLoader->testCount); - $this->printer->start(); + $this->printer->start($suiteLoader->testCount); $this->timer->start(); diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index f6921a4a..122af350 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -13,7 +13,7 @@ use PHPUnit\Event\Telemetry\Snapshot; use PHPUnit\TestRunner\TestResult\TestResult as PHPUnitTestResult; use SebastianBergmann\Timer\Duration; use Symfony\Component\Console\Output\ConsoleOutput; -use Symfony\Component\Console\Output\ConsoleOutputInterface; +use Symfony\Component\Console\Output\OutputInterface; use function Termwind\render; use Termwind\Terminal; use function Termwind\terminal; @@ -23,15 +23,10 @@ use function Termwind\terminal; */ final class CompactPrinter { - private readonly Terminal $terminal; - - private readonly ConsoleOutputInterface $output; - - private readonly Style $style; - - private int $compactProcessed = 0; - - private readonly int $compactSymbolsPerLine; + /** + * The number of processed tests. + */ + private int $processed = 0; /** * @var array> @@ -47,13 +42,29 @@ final class CompactPrinter 'F' => ['red', '⨯'], ]; - public function __construct() - { - $this->terminal = terminal(); - $this->output = new ConsoleOutput(decorated: true); - $this->style = new Style($this->output); + /** + * Creates a new instance of the Compact Printer. + */ + public function __construct( + private readonly Terminal $terminal, + private readonly OutputInterface $output, + private readonly Style $style, + private readonly int $compactSymbolsPerLine, + ) { + // .. + } - $this->compactSymbolsPerLine = $this->terminal->width() - 4; + /** + * Creates a new instance of the Compact Printer. + */ + public static function default(): self + { + return new self( + terminal(), + new ConsoleOutput(decorated: true), + new Style(new ConsoleOutput(decorated: true)), + terminal()->width() - 4, + ); } /** @@ -79,7 +90,7 @@ final class CompactPrinter { [$color, $icon] = self::LOOKUP_TABLE[$item] ?? self::LOOKUP_TABLE['.']; - $symbolsOnCurrentLine = $this->compactProcessed % $this->compactSymbolsPerLine; + $symbolsOnCurrentLine = $this->processed % $this->compactSymbolsPerLine; if ($symbolsOnCurrentLine >= $this->terminal->width() - 4) { $symbolsOnCurrentLine = 0; @@ -92,7 +103,7 @@ final class CompactPrinter $this->output->write(sprintf('%s', $color, $icon)); - $this->compactProcessed++; + $this->processed++; } /** From 5ca4c5bca969be728a9cffdff5d06c07ecc49764 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 09:43:49 +0000 Subject: [PATCH 51/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- src/Plugins/Parallel.php | 40 +++++++++++----------- src/Plugins/Parallel/Handlers/Laravel.php | 9 ++--- src/Plugins/Parallel/Handlers/Parallel.php | 2 +- src/Repositories/AfterEachRepository.php | 2 +- 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index e1111e69..bebe2105 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -31,22 +31,7 @@ final class Parallel implements HandlesArguments ]; /** - * If the - */ - public static function isCommand(): bool - { - // get binary name - Arr::get($_SERVER, 'argv.0'); - - $argvValue = Arr::get($_ENV, 'PARATEST'); - - assert(is_string($argvValue) || is_int($argvValue) || is_null($argvValue)); - - return ((int) $argvValue) === 1; - } - - /** - * If the + * If this code is running in a worker process rather than the main process. */ public static function isWorker(): bool { @@ -57,23 +42,28 @@ final class Parallel implements HandlesArguments return ((int) $argvValue) === 1; } + /** + * {@inheritdoc} + */ public function handleArguments(array $arguments): array { - if ($this->argumentsContainParallelFlags($arguments)) { + if ($this->argumentsContainParallelOptions($arguments)) { exit($this->runTestSuiteInParallel($arguments)); } if (self::isWorker()) { - return $this->runWorkersHandlers($arguments); + return $this->runWorkerHandlers($arguments); } return $arguments; } /** + * Whether the given command line arguments indicate that the test suite should be run in parallel. + * * @param array $arguments */ - private function argumentsContainParallelFlags(array $arguments): bool + private function argumentsContainParallelOptions(array $arguments): bool { if ($this->hasArgument('--parallel', $arguments)) { return true; @@ -83,6 +73,8 @@ final class Parallel implements HandlesArguments } /** + * Runs the test suite in parallel. This method will exit the process upon completion. + * * @param array $arguments * * @throws JsonException @@ -114,10 +106,12 @@ final class Parallel implements HandlesArguments } /** + * Runs any handlers that have been registered to handle worker arguments, and returns the modified arguments. + * * @param array $arguments * @return array */ - private function runWorkersHandlers(array $arguments): array + private function runWorkerHandlers(array $arguments): array { $handlers = array_filter( array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS), @@ -131,6 +125,9 @@ final class Parallel implements HandlesArguments ); } + /** + * Outputs a message to the user asking them to install ParaTest as a dev dependency. + */ private function askUserToInstallParatest(): void { /** @var OutputInterface $output */ @@ -142,6 +139,9 @@ final class Parallel implements HandlesArguments ]); } + /** + * Builds an instance of the Paratest command. + */ private function paratestCommand(): Application { /** @var non-empty-string $rootPath */ diff --git a/src/Plugins/Parallel/Handlers/Laravel.php b/src/Plugins/Parallel/Handlers/Laravel.php index 41432c29..a1573b8e 100644 --- a/src/Plugins/Parallel/Handlers/Laravel.php +++ b/src/Plugins/Parallel/Handlers/Laravel.php @@ -21,6 +21,9 @@ final class Laravel implements HandlesArguments { use HandleArguments; + /** + * {@inheritdoc} + */ public function handleArguments(array $arguments): array { return self::whenUsingLaravel($arguments, function (array $arguments): array { @@ -43,10 +46,8 @@ final class Laravel implements HandlesArguments { $isLaravelApplication = InstalledVersions::isInstalled('laravel/framework', false); $isLaravelPackage = class_exists(\Orchestra\Testbench\TestCase::class); - if ($isLaravelApplication) { - return $closure($arguments); - } - if ($isLaravelPackage) { + + if ($isLaravelApplication && ! $isLaravelPackage) { return $closure($arguments); } diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 76829b60..7126881c 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -25,7 +25,7 @@ final class Parallel implements HandlesArguments ]; /** - * Handles the arguments, removing the ones that are not needed, and adding the "runner" argument. + * Handles the arguments, removing the ones that are not needed, and adds the "runner" argument. */ public function handleArguments(array $arguments): array { diff --git a/src/Repositories/AfterEachRepository.php b/src/Repositories/AfterEachRepository.php index 0dec040e..affc4493 100644 --- a/src/Repositories/AfterEachRepository.php +++ b/src/Repositories/AfterEachRepository.php @@ -33,7 +33,7 @@ final class AfterEachRepository } /** - * Gets a after each closure by the given filename. + * Gets an after each closure by the given filename. */ public function get(string $filename): Closure { From 69afb31bb999e66a7bdf0d186723342cbf83348f Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 11:13:17 +0000 Subject: [PATCH 52/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .temp/test-results | 2 +- bin/worker.php | 12 ++++-- .../ProgressPrinter/TestSkippedSubscriber.php | 42 +++++++++++++++++++ src/Plugins/Parallel/Handlers/Parallel.php | 1 + .../Parallel/Paratest/ResultPrinter.php | 2 - .../Parallel/Support/CompactPrinter.php | 1 + 6 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php diff --git a/.temp/test-results b/.temp/test-results index 423b907f..3e57912f 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.001,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.003,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBe::failures":0,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBe::not_failures":0,"P\\Tests\\Features\\Expect\\toBeArray::pass":0,"P\\Tests\\Features\\Expect\\toBeArray::failures":0,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0,"P\\Tests\\Features\\Expect\\toBeBool::pass":0,"P\\Tests\\Features\\Expect\\toBeBool::failures":0,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIn::passes":0,"P\\Tests\\Features\\Expect\\toBeIn::failures":0,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0,"P\\Tests\\Features\\Expect\\toBeInt::pass":0,"P\\Tests\\Features\\Expect\\toBeInt::failures":0,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0,"P\\Tests\\Features\\Expect\\toBeJson::pass":0,"P\\Tests\\Features\\Expect\\toBeJson::failures":0,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNull::pass":0,"P\\Tests\\Features\\Expect\\toBeNull::failures":0,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0,"P\\Tests\\Features\\Expect\\toBeObject::pass":0,"P\\Tests\\Features\\Expect\\toBeObject::failures":0,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toBeResource::pass":0,"P\\Tests\\Features\\Expect\\toBeResource::failures":0,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0,"P\\Tests\\Features\\Expect\\toBeString::pass":0,"P\\Tests\\Features\\Expect\\toBeString::failures":0,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0,"P\\Tests\\Features\\Expect\\toEndWith::pass":0,"P\\Tests\\Features\\Expect\\toEndWith::failures":0,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0,"P\\Tests\\Features\\Expect\\toMatch::pass":0,"P\\Tests\\Features\\Expect\\toMatch::failures":0,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0,"P\\Tests\\Features\\Expect\\toStartWith::pass":0,"P\\Tests\\Features\\Expect\\toStartWith::failures":0,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::passes":0,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.004,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0,"P\\Tests\\Features\\Skip::it_skips_with_message":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0,"P\\Tests\\Features\\Todo::something_todo_later_chained":0,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.001,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.01,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.023,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.002,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.002,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.006,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.003,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.02,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.002,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.002,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.005,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.003,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0.001,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.002,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0.001,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.001,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.004,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/bin/worker.php b/bin/worker.php index ca6e84c6..d9a8efbf 100644 --- a/bin/worker.php +++ b/bin/worker.php @@ -45,9 +45,6 @@ $bootPest = (static function (): void { 'phpunit-argv:', ]); - require_once __DIR__.'/../overrides/Runner/TestSuiteLoader.php'; - require_once __DIR__.'/../overrides/Runner/Filter/NameFilterIterator.php'; - $composerAutoloadFiles = [ dirname(__DIR__, 3).DIRECTORY_SEPARATOR.'autoload.php', dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php', @@ -63,6 +60,15 @@ $bootPest = (static function (): void { } } + require_once __DIR__.'/../overrides/Runner/TestSuiteLoader.php'; + require_once __DIR__.'/../overrides/Runner/Filter/NameFilterIterator.php'; + + /** + * PHPUnit has no understanding of "todo" tests, so the ProgressPrinter will not show + * TODO items by default. We use our own implementation here to add support for TODO. + */ + require_once __DIR__.'/../overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php'; + assert(isset($getopt['status-file']) && is_string($getopt['status-file'])); $statusFile = fopen($getopt['status-file'], 'wb'); assert(is_resource($statusFile)); diff --git a/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php new file mode 100644 index 00000000..b8f19c31 --- /dev/null +++ b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI\Output\Default\ProgressPrinter; + +use PHPUnit\Event\Test\Skipped; +use PHPUnit\Event\Test\SkippedSubscriber; +use ReflectionClass; + +/** + * @internal This class is not covered by the backward compatibility promise for PHPUnit + * + * This file is only overridden when using Pest Parallel. See /bin/worker.php for more information. + */ +final class TestSkippedSubscriber extends Subscriber implements SkippedSubscriber +{ + /** + * Notifies the printer that a test was skipped. + */ + public function notify(Skipped $event): void + { + str_contains($event->message(), '__TODO__') + ? $this->printTodoItem() + : $this->printer()->testSkipped(); + } + + /** + * Prints a "T" to the standard PHPUnit output to indicate a todo item. + */ + private function printTodoItem(): void + { + $mirror = new ReflectionClass($this->printer()); + $printerMirror = $mirror->getMethod('printProgress'); + $printerMirror->invoke($this->printer(), 'T'); + } +} diff --git a/src/Plugins/Parallel/Handlers/Parallel.php b/src/Plugins/Parallel/Handlers/Parallel.php index 7126881c..2e87a521 100644 --- a/src/Plugins/Parallel/Handlers/Parallel.php +++ b/src/Plugins/Parallel/Handlers/Parallel.php @@ -22,6 +22,7 @@ final class Parallel implements HandlesArguments '--parallel', '-p', '--no-output', + '--cache-result', ]; /** diff --git a/src/Plugins/Parallel/Paratest/ResultPrinter.php b/src/Plugins/Parallel/Paratest/ResultPrinter.php index c34e5616..e2f44e9a 100644 --- a/src/Plugins/Parallel/Paratest/ResultPrinter.php +++ b/src/Plugins/Parallel/Paratest/ResultPrinter.php @@ -152,8 +152,6 @@ final class ResultPrinter return; } - $this->compactPrinter->newLine(); - $state = (new StateGenerator())->fromPhpUnitTestResult($testResult); $this->compactPrinter->errors($state); diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index 122af350..60c813f1 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -34,6 +34,7 @@ final class CompactPrinter private const LOOKUP_TABLE = [ '.' => ['gray', '.'], 'S' => ['yellow', 's'], + 'T' => ['blue', 't'], 'I' => ['yellow', 'i'], 'N' => ['yellow', 'i'], 'R' => ['yellow', '!'], From 8ee7a4deef334f359007efdb8900fc2d4b92a98a Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 11:19:18 +0000 Subject: [PATCH 53/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .../Output/Default/ProgressPrinter/TestSkippedSubscriber.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php index b8f19c31..801208ef 100644 --- a/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php +++ b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php @@ -1,4 +1,6 @@ - Date: Mon, 13 Feb 2023 11:22:42 +0000 Subject: [PATCH 54/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- src/Plugins/Parallel/Support/CompactPrinter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugins/Parallel/Support/CompactPrinter.php b/src/Plugins/Parallel/Support/CompactPrinter.php index 60c813f1..339ad748 100644 --- a/src/Plugins/Parallel/Support/CompactPrinter.php +++ b/src/Plugins/Parallel/Support/CompactPrinter.php @@ -34,7 +34,7 @@ final class CompactPrinter private const LOOKUP_TABLE = [ '.' => ['gray', '.'], 'S' => ['yellow', 's'], - 'T' => ['blue', 't'], + 'T' => ['cyan', 't'], 'I' => ['yellow', 'i'], 'N' => ['yellow', 'i'], 'R' => ['yellow', '!'], From 666b2f3fd0644d203b823faac638fe401108fcfe Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 12:13:53 +0000 Subject: [PATCH 55/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .temp/test-results | 2 +- bin/worker.php | 6 ---- src/Plugins/Parallel.php | 66 ++++++++++++++++++++++++++++------------ src/Plugins/Retry.php | 19 +++++------- 4 files changed, 55 insertions(+), 38 deletions(-) diff --git a/.temp/test-results b/.temp/test-results index 3e57912f..9da7cc7a 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.01,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.023,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.002,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.002,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.006,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.003,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.02,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.002,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.002,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.005,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.003,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0.001,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.002,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0.001,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.001,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.004,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.01,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.023,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0.03,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.009,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.002,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.006,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.003,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.02,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.002,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.002,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.005,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.003,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0.001,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.002,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0.001,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.002,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0.002,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.004,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/bin/worker.php b/bin/worker.php index d9a8efbf..b9301c8c 100644 --- a/bin/worker.php +++ b/bin/worker.php @@ -7,7 +7,6 @@ use ParaTest\WrapperRunner\WrapperWorker; use Pest\ConfigLoader; use Pest\Kernel; use Pest\Plugins\Actions\CallsHandleArguments; -use Pest\TestCaseMethodFilters\TodoTestCaseFilter; use Pest\TestSuite; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Output\ConsoleOutput; @@ -15,7 +14,6 @@ use Symfony\Component\Console\Output\OutputInterface; $bootPest = (static function (): void { $workerArgv = new ArgvInput(); - $masterArgv = new ArgvInput(json_decode($_SERVER['PEST_PARALLEL_ARGV'])); $rootPath = dirname(PHPUNIT_COMPOSER_INSTALL, 2); $testSuite = TestSuite::getInstance($rootPath, $workerArgv->getParameterOption( @@ -23,10 +21,6 @@ $bootPest = (static function (): void { (new ConfigLoader($rootPath))->getTestsDirectory() )); - if ($masterArgv->hasParameterOption('--todo')) { - $testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter()); - } - $input = new ArgvInput(); $output = new ConsoleOutput(OutputInterface::VERBOSITY_NORMAL, true); diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index bebe2105..bf60b425 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -4,7 +4,6 @@ declare(strict_types=1); namespace Pest\Plugins; -use JsonException; use ParaTest\ParaTestCommand; use Pest\Contracts\Plugins\HandlesArguments; use Pest\Plugins\Actions\CallsAddsOutput; @@ -30,6 +29,16 @@ final class Parallel implements HandlesArguments Parallel\Handlers\Laravel::class, ]; + /** + * Whether the given command line arguments indicate that the test suite should be run in parallel. + */ + public static function isEnabled(): bool + { + $argv = new ArgvInput(); + + return $argv->hasParameterOption('--parallel') || $argv->hasParameterOption('-p'); + } + /** * If this code is running in a worker process rather than the main process. */ @@ -47,7 +56,11 @@ final class Parallel implements HandlesArguments */ public function handleArguments(array $arguments): array { - if ($this->argumentsContainParallelOptions($arguments)) { + if ($this->hasArgumentsThatWouldBeFasterWithoutParallel()) { + return $this->runTestSuiteInSeries($arguments); + } + + if (self::isEnabled()) { exit($this->runTestSuiteInParallel($arguments)); } @@ -58,26 +71,10 @@ final class Parallel implements HandlesArguments return $arguments; } - /** - * Whether the given command line arguments indicate that the test suite should be run in parallel. - * - * @param array $arguments - */ - private function argumentsContainParallelOptions(array $arguments): bool - { - if ($this->hasArgument('--parallel', $arguments)) { - return true; - } - - return $this->hasArgument('-p', $arguments); - } - /** * Runs the test suite in parallel. This method will exit the process upon completion. * * @param array $arguments - * - * @throws JsonException */ private function runTestSuiteInParallel(array $arguments): int { @@ -87,8 +84,6 @@ final class Parallel implements HandlesArguments return Command::FAILURE; } - $_ENV['PEST_PARALLEL_ARGV'] = json_encode($_SERVER['argv'], JSON_THROW_ON_ERROR); - $handlers = array_filter( array_map(fn ($handler): object|string => Container::getInstance()->get($handler), self::HANDLERS), fn ($handler): bool => $handler instanceof HandlesArguments, @@ -154,4 +149,35 @@ final class Parallel implements HandlesArguments return $command; } + + /** + * Whether the command line arguments contain any arguments that are + * not supported or are suboptimal when running in parallel. + */ + private function hasArgumentsThatWouldBeFasterWithoutParallel(): bool + { + $unsupportedArguments = ['--todo', '--retry']; + $arguments = new ArgvInput(); + + foreach ($unsupportedArguments as $unsupportedArgument) { + if ($arguments->hasParameterOption($unsupportedArgument)) { + return true; + } + } + + return false; + } + + /** + * Removes any parallel arguments. + * + * @param array $arguments + * @return array + */ + private function runTestSuiteInSeries(array $arguments): array + { + $arguments = $this->popArgument('--parallel', $arguments); + + return $this->popArgument('-p', $arguments); + } } diff --git a/src/Plugins/Retry.php b/src/Plugins/Retry.php index 0b37fe1a..5f5f8423 100644 --- a/src/Plugins/Retry.php +++ b/src/Plugins/Retry.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Pest\Plugins; use Pest\Contracts\Plugins\HandlesArguments; -use Pest\Exceptions\InvalidOption; /** * @internal @@ -19,18 +18,16 @@ final class Retry implements HandlesArguments */ public function handleArguments(array $arguments): array { - if ($this->hasArgument('--retry', $arguments)) { - if ($this->hasArgument('--parallel', $arguments)) { - throw new InvalidOption('The --retry option is not supported when running in parallel.'); - } - - $arguments = $this->popArgument('--retry', $arguments); - - $arguments = $this->pushArgument('--order-by=defects', $arguments); - - $arguments = $this->pushArgument('--stop-on-failure', $arguments); + if (! $this->hasArgument('--retry', $arguments)) { + return $arguments; } + $arguments = $this->popArgument('--retry', $arguments); + + $arguments = $this->pushArgument('--order-by=defects', $arguments); + + $arguments = $this->pushArgument('--stop-on-failure', $arguments); + return $arguments; } } From 3b5f9ec59d548085cc0105ae2f4bdbf4db70d5f6 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 12:18:59 +0000 Subject: [PATCH 56/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .temp/retry.json | 1 - .temp/test-results | 2 +- tests/Features/DatasetsTests.php | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 .temp/retry.json diff --git a/.temp/retry.json b/.temp/retry.json deleted file mode 100644 index 33db9abc..00000000 --- a/.temp/retry.json +++ /dev/null @@ -1 +0,0 @@ -["P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)","P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)"] \ No newline at end of file diff --git a/.temp/test-results b/.temp/test-results index 9da7cc7a..625b3077 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.01,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.023,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0.03,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.009,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.002,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.006,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.003,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.02,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.002,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.002,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.005,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.003,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.003,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0.001,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.002,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0.001,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.002,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0.002,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.004,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.009,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.003,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.02,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0.029,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0.005,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0.004,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.002,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.005,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.003,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.002,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.004,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.005,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.019,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.001,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.004,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.002,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.001,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.001,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName9PytFN2LVSAATIBL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamez55PZiKuaUNBf6ve::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWmIWFO2w1QQyf1E8::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/tests/Features/DatasetsTests.php b/tests/Features/DatasetsTests.php index aeb0ba82..2ca586e3 100644 --- a/tests/Features/DatasetsTests.php +++ b/tests/Features/DatasetsTests.php @@ -295,6 +295,7 @@ it('resolves a potential bound dataset logically even when the closure comes fir it('will not resolve a closure if it is type hinted as a closure', function (Closure $data) { expect($data())->toBeString(); + expect(true)->toBeFalse(); })->with([ function () { return 'foo'; From eb64113a3dfd5de21d0829f79adb59a721d6fbd3 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 12:20:08 +0000 Subject: [PATCH 57/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- tests/Features/DatasetsTests.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Features/DatasetsTests.php b/tests/Features/DatasetsTests.php index 2ca586e3..aeb0ba82 100644 --- a/tests/Features/DatasetsTests.php +++ b/tests/Features/DatasetsTests.php @@ -295,7 +295,6 @@ it('resolves a potential bound dataset logically even when the closure comes fir it('will not resolve a closure if it is type hinted as a closure', function (Closure $data) { expect($data())->toBeString(); - expect(true)->toBeFalse(); })->with([ function () { return 'foo'; From d57437ff025e44fecbf6e1415654bb7769cb9af9 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 12:25:00 +0000 Subject: [PATCH 58/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .temp/test-results | 2 +- bin/worker.php | 9 --------- .../Default/ProgressPrinter/TestSkippedSubscriber.php | 2 +- src/Bootstrappers/BootOverrides.php | 2 ++ 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.temp/test-results b/.temp/test-results index 625b3077..33246397 100644 --- a/.temp/test-results +++ b/.temp/test-results @@ -1 +1 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.009,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.003,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.02,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0.029,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0.005,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0.004,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.002,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.005,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.003,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.002,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.004,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.005,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.019,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.001,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0.001,"P\\Tests\\Features\\Incompleted::incompleted":0.004,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.002,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.001,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.001,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName9PytFN2LVSAATIBL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamez55PZiKuaUNBf6ve::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWmIWFO2w1QQyf1E8::it_runs_file_names_like_______________php_":0}} \ No newline at end of file +{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.009,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.02,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.009,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.005,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.002,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.002,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.019,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.001,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0.004,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.002,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.002,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0.002,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0.005,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName9PytFN2LVSAATIBL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamez55PZiKuaUNBf6ve::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWmIWFO2w1QQyf1E8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName8IOVcQ0E16ZwxoZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNametZJqcU8DD1NVWwu0::it_runs_file_names_like_______________php_":0}} \ No newline at end of file diff --git a/bin/worker.php b/bin/worker.php index b9301c8c..19aa4790 100644 --- a/bin/worker.php +++ b/bin/worker.php @@ -54,15 +54,6 @@ $bootPest = (static function (): void { } } - require_once __DIR__.'/../overrides/Runner/TestSuiteLoader.php'; - require_once __DIR__.'/../overrides/Runner/Filter/NameFilterIterator.php'; - - /** - * PHPUnit has no understanding of "todo" tests, so the ProgressPrinter will not show - * TODO items by default. We use our own implementation here to add support for TODO. - */ - require_once __DIR__.'/../overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php'; - assert(isset($getopt['status-file']) && is_string($getopt['status-file'])); $statusFile = fopen($getopt['status-file'], 'wb'); assert(is_resource($statusFile)); diff --git a/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php index 801208ef..606175a0 100644 --- a/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php +++ b/overrides/TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php @@ -19,7 +19,7 @@ use ReflectionClass; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit * - * This file is only overridden when using Pest Parallel. See /bin/worker.php for more information. + * This file is overridden to allow Pest Parallel to show todo items in the progress output. */ final class TestSkippedSubscriber extends Subscriber implements SkippedSubscriber { diff --git a/src/Bootstrappers/BootOverrides.php b/src/Bootstrappers/BootOverrides.php index 5341e8d1..e5bac012 100644 --- a/src/Bootstrappers/BootOverrides.php +++ b/src/Bootstrappers/BootOverrides.php @@ -6,6 +6,7 @@ namespace Pest\Bootstrappers; use Pest\Contracts\Bootstrapper; use Pest\Exceptions\ShouldNotHappen; +use Pest\Plugins\Parallel; /** * @internal @@ -20,6 +21,7 @@ final class BootOverrides implements Bootstrapper private const FILES = [ 'Runner/Filter/NameFilterIterator.php', 'Runner/TestSuiteLoader.php', + 'TextUI/Output/Default/ProgressPrinter/TestSkippedSubscriber.php', ]; /** From e22f6e1e4de2ddc390f884a567641b4b06c678a1 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 12:25:19 +0000 Subject: [PATCH 59/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- src/Bootstrappers/BootOverrides.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Bootstrappers/BootOverrides.php b/src/Bootstrappers/BootOverrides.php index e5bac012..3d3e7fa8 100644 --- a/src/Bootstrappers/BootOverrides.php +++ b/src/Bootstrappers/BootOverrides.php @@ -6,7 +6,6 @@ namespace Pest\Bootstrappers; use Pest\Contracts\Bootstrapper; use Pest\Exceptions\ShouldNotHappen; -use Pest\Plugins\Parallel; /** * @internal From ec8fb202b335aa249eb503239f973cbb78bff6c9 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 13:11:27 +0000 Subject: [PATCH 60/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- src/Plugins/Parallel.php | 13 +++++++++---- src/Plugins/Retry.php | 4 +--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index bf60b425..8bba649c 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -28,6 +28,10 @@ final class Parallel implements HandlesArguments Parallel\Handlers\Pest::class, Parallel\Handlers\Laravel::class, ]; + /** + * @var string[] + */ + private const UNSUPPORTED_ARGUMENTS = ['--todo', '--retry']; /** * Whether the given command line arguments indicate that the test suite should be run in parallel. @@ -35,8 +39,10 @@ final class Parallel implements HandlesArguments public static function isEnabled(): bool { $argv = new ArgvInput(); - - return $argv->hasParameterOption('--parallel') || $argv->hasParameterOption('-p'); + if ($argv->hasParameterOption('--parallel')) { + return true; + } + return $argv->hasParameterOption('-p'); } /** @@ -156,10 +162,9 @@ final class Parallel implements HandlesArguments */ private function hasArgumentsThatWouldBeFasterWithoutParallel(): bool { - $unsupportedArguments = ['--todo', '--retry']; $arguments = new ArgvInput(); - foreach ($unsupportedArguments as $unsupportedArgument) { + foreach (self::UNSUPPORTED_ARGUMENTS as $unsupportedArgument) { if ($arguments->hasParameterOption($unsupportedArgument)) { return true; } diff --git a/src/Plugins/Retry.php b/src/Plugins/Retry.php index 5f5f8423..f17d74c4 100644 --- a/src/Plugins/Retry.php +++ b/src/Plugins/Retry.php @@ -26,8 +26,6 @@ final class Retry implements HandlesArguments $arguments = $this->pushArgument('--order-by=defects', $arguments); - $arguments = $this->pushArgument('--stop-on-failure', $arguments); - - return $arguments; + return $this->pushArgument('--stop-on-failure', $arguments); } } From 104db3f6a5f72a44fa6d80e44d6af0538ba06c51 Mon Sep 17 00:00:00 2001 From: Luke Downing Date: Mon, 13 Feb 2023 13:13:23 +0000 Subject: [PATCH 61/63] chore(cleanup): Tidy-up and tweaks of Pest Parallel integration. --- .temp/test-results | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .temp/test-results diff --git a/.temp/test-results b/.temp/test-results deleted file mode 100644 index 33246397..00000000 --- a/.temp/test-results +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"defects":{"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":1,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":1,"P\\Tests\\Features\\Incompleted::incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":2,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":2,"P\\Tests\\Features\\Skip::it_skips_with_truthy":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":1,"P\\Tests\\Features\\Skip::it_skips_with_message":1,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":1,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":1,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":1,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":1,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":1,"P\\Tests\\Features\\Todo::something_todo_later":1,"P\\Tests\\Features\\Todo::something_todo_later_chained":1,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":1,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":1,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":1,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":7,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":7,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":7,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":7,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":5,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":5,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":5,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":1,"P\\Tests\\Visual\\Parallel::parallel":7,"P\\Tests\\Temporary\\A::it_wqdwqdq":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":7,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":7},"times":{"P\\Tests\\Features\\AfterAll::deletes_file_after_all":0.009,"P\\Tests\\Features\\AfterEach::it_does_not_get_executed_before_the_test":0.004,"P\\Tests\\Features\\AfterEach::it_gets_executed_after_the_test":0.001,"P\\Tests\\Features\\BeforeAll::it_gets_executed_before_tests":0.001,"P\\Tests\\Features\\BeforeAll::it_do_not_get_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test":0,"P\\Tests\\Features\\BeforeEach::it_gets_executed_before_each_test_once_again":0,"P\\Tests\\Features\\Coverage::it_has_plugin":0,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___coverage_exist":0.02,"P\\Tests\\Features\\Coverage::it_adds_coverage_if___min_exist":0.001,"P\\Tests\\Features\\Coverage::it_generates_coverage_based_on_file_input":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_class":0,"P\\Tests\\Features\\Covers::it_uses_the_correct_PHPUnit_attribute_for_function":0,"P\\Tests\\Features\\Covers::it_removes_duplicated_attributes":0,"P\\Tests\\Features\\Covers::it_guesses_if_the_given_argument_is_a_class_or_function":0,"P\\Tests\\Features\\Covers::it_appends_CoversNothing_to_method_attributes":0,"P\\Tests\\Features\\Covers::it_does_not_append_CoversNothing_to_other_methods":0,"P\\Tests\\Features\\Covers::it_throws_exception_if_no_class_nor_method_has_been_found":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_does_not_exist":0.002,"P\\Tests\\Features\\DatasetsTests::it_throws_exception_if_dataset_already_exist":0.001,"P\\Tests\\Features\\DatasetsTests::it_sets_closures":0,"P\\Tests\\Features\\DatasetsTests::it_sets_arrays":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('a')":0,"P\\Tests\\Features\\DatasetsTests::it_gets_bound_to_test_case_object#('b')":0,"P\\Tests\\Features\\DatasetsTests::it_truncates_the_description#('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(1)":0.001,"P\\Tests\\Features\\DatasetsTests::eager_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_datasets#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"one\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets#data set \"two\"":0,"P\\Tests\\Features\\DatasetsTests::named_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_named_datasets#(Bar Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #1":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #2":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), false)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 2', Pest\\Plugin Object (), true)":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names#('Name 1', Pest\\Plugin Object (), true) #3":0,"P\\Tests\\Features\\DatasetsTests::it_creates_unique_test_case_names___count":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::lazy_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(1) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (3)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets#(2) \/ (4)":0,"P\\Tests\\Features\\DatasetsTests::eager_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::lazy_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (1)":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(1) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (1)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets#(2) \/ (2)":0,"P\\Tests\\Features\\DatasetsTests::eager_wrapped_registered_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"one\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"three\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets#data set \"two\" \/ data set \"four\"":0,"P\\Tests\\Features\\DatasetsTests::named_multiple_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(1) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (3) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (5)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets#(2) \/ (4) \/ (6)":0,"P\\Tests\\Features\\DatasetsTests::more_than_two_datasets_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(1)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(2)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(3)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions#(4)":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_did_the_job_right":0,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"taylor\"":0.002,"P\\Tests\\Features\\DatasetsTests::eager_registered_wrapped_datasets_with_Generator_functions_display_description#data set \"james\"":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #1":0.001,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_yield_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_can_resolve_a_dataset_after_the_test_case_is_available_with_shared_array_sets#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically#('foo', Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_resolves_a_potential_bound_dataset_logically_even_when_the_closure_comes_first#(Closure Object (...), 'bar')":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_closure#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #1":0,"P\\Tests\\Features\\DatasetsTests::it_will_not_resolve_a_closure_if_it_is_type_hinted_as_a_callable#(Closure Object (...)) #2":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::it_can_correctly_resolve_a_bound_dataset_that_returns_an_array_but_wants_to_be_spread#(Closure Object (...))":0,"P\\Tests\\Features\\DatasetsTests::forbids_to_define_tests_in_Datasets_dirs_and_Datasets_php_files":0.009,"P\\Tests\\Features\\Depends::first":0,"P\\Tests\\Features\\Depends::second":0,"P\\Tests\\Features\\Depends::depends":0,"P\\Tests\\Features\\Depends::depends_with____params":0,"P\\Tests\\Features\\Depends::depends_with_defined_arguments":0,"P\\Tests\\Features\\Depends::depends_run_test_only_once":0,"P\\Tests\\Features\\Depends::it_asserts_true_is_true":0,"P\\Tests\\Features\\Depends::depends_works_with_the_correct_test_name":0,"P\\Tests\\Features\\DependsInheritance::it_is_a_test":0,"P\\Tests\\Features\\DependsInheritance::it_uses_correct_parent_class":0,"P\\Tests\\Features\\Exceptions::it_gives_access_the_the_underlying_expectException":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code":0.001,"P\\Tests\\Features\\Exceptions::it_not_catch_exceptions_if_given_condition_is_false":0,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions_and_messages_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_catch_exceptions__messages_and_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_true":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_message_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Exceptions::it_can_just_define_the_code_if_given_condition_is_1":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_access_multiple_methods":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_not":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_accept_arguments":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_each":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_inside_of_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_compose_complex_expectations":0.005,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_handle_nested_method_calls":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_can_use_the_scoped_method_to_lock_into_the_given_level_for_expectations":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methods::it_works_consistently_with_the_json_expectation_method":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_access_methods_and_properties":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_handle_nested_methods_and_properties":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_works_with_higher_order_tests":0.004,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_in_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\methodsAndProperties::it_can_start_a_new_higher_order_expectation_using_the_and_syntax_without_nesting_expectations":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_allows_properties_to_be_accessed_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_access_multiple_properties_from_the_value":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_not":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_each":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_inside_of_each":0.001,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_sequence":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_can_compose_complex_expectations":0.003,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_objects":0.002,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_nested_properties":0,"P\\Tests\\Features\\Expect\\HigherOrder\\properties::it_works_with_higher_order_tests":0.001,"P\\Tests\\Features\\Expect\\each::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\each::it_expects_on_each_item":0,"P\\Tests\\Features\\Expect\\each::it_chains_expectations_on_each_item":0.001,"P\\Tests\\Features\\Expect\\each::opposite_expectations_on_each_item":0.005,"P\\Tests\\Features\\Expect\\each::chained_opposite_and_non_opposite_expectations":0.004,"P\\Tests\\Features\\Expect\\each::it_can_add_expectations_via__and_":0.002,"P\\Tests\\Features\\Expect\\each::it_accepts_callables":0.002,"P\\Tests\\Features\\Expect\\each::it_passes_the_key_of_the_current_item_to_callables":0,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true":0.001,"P\\Tests\\Features\\Expect\\extend::it_macros_true_is_true_with_argument":0,"P\\Tests\\Features\\Expect\\extend::it_macros_false_is_not_true_with_argument":0.001,"P\\Tests\\Features\\Expect\\json::it_properly_parses_json_string":0,"P\\Tests\\Features\\Expect\\json::fails_with_broken_json_string":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_pass":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_failures":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_runs_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_passed_non_callable_values":0.002,"P\\Tests\\Features\\Expect\\matchExpectation::it_fails_with_unhandled_match":0.001,"P\\Tests\\Features\\Expect\\matchExpectation::it_can_be_used_in_higher_order_tests":0,"P\\Tests\\Features\\Expect\\not::not_property_calls":0.002,"P\\Tests\\Features\\Expect\\pipes::pipe_is_applied_and_can_stop_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_is_run_and_can_let_the_pipeline_keep_going":0.001,"P\\Tests\\Features\\Expect\\pipes::pipe_works_with_negated_expectation":0.002,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_applied":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_stops_the_pipeline":0.001,"P\\Tests\\Features\\Expect\\pipes::interceptor_is_called_only_when_filter_is_met":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filtered_with_a_closure":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_can_be_filter_the_expected_parameter_as_well":0,"P\\Tests\\Features\\Expect\\pipes::interceptor_works_with_negated_expectation":0.001,"P\\Tests\\Features\\Expect\\pipes::intercept_can_add_new_parameters_to_the_expectation":0.001,"P\\Tests\\Features\\Expect\\ray::ray_calls_do_not_fail_when_ray_is_not_installed":0,"P\\Tests\\Features\\Expect\\sequence::an_exception_is_thrown_if_the_the_type_is_not_iterable":0.001,"P\\Tests\\Features\\Expect\\sequence::allows_for_sequences_of_checks_to_be_run_on_iterable_data":0,"P\\Tests\\Features\\Expect\\sequence::loops_back_to_the_start_if_it_runs_out_of_sequence_items":0.001,"P\\Tests\\Features\\Expect\\sequence::fails_if_the_number_of_iterable_items_is_greater_than_the_number_of_expectations":0.003,"P\\Tests\\Features\\Expect\\sequence::it_works_with_associative_arrays":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_non_callable_values":0,"P\\Tests\\Features\\Expect\\sequence::it_can_be_passed_a_mixture_of_value_types":0,"P\\Tests\\Features\\Expect\\toBe::strict_comparisons":0.001,"P\\Tests\\Features\\Expect\\toBe::failures":0.001,"P\\Tests\\Features\\Expect\\toBe::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBe::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::pass":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures":0.001,"P\\Tests\\Features\\Expect\\toBeArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::pass":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures":0.001,"P\\Tests\\Features\\Expect\\toBeBool::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeBool::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeCallable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::pass":0,"P\\Tests\\Features\\Expect\\toBeEmpty::failures":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeEmpty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeFalse::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalse::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(false)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(null)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#(0)":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_falsy#('0')":0,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(true)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #1":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#('false')":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(1) #2":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::passes_as_not_falsy#(-1)":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFalsy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::pass":0,"P\\Tests\\Features\\Expect\\toBeFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::pass":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeFloat::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::passes":0,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeGreatherThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::passes":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIn::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIn::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::pass":0.002,"P\\Tests\\Features\\Expect\\toBeInfinite::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInfinite::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInstanceOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::pass":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures":0.001,"P\\Tests\\Features\\Expect\\toBeInt::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeInt::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::pass":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeIterable::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::pass":0.002,"P\\Tests\\Features\\Expect\\toBeJson::failures":0.001,"P\\Tests\\Features\\Expect\\toBeJson::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeJson::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::passes":0,"P\\Tests\\Features\\Expect\\toBeLessThan::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeLessThan::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::passes":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures":0.001,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toBeLessThanOrEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::pass":0.002,"P\\Tests\\Features\\Expect\\toBeNAN::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNAN::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNull::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNull::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::pass":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeNumeric::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::pass":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures":0.001,"P\\Tests\\Features\\Expect\\toBeObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::pass":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeReadableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::pass":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures":0.001,"P\\Tests\\Features\\Expect\\toBeResource::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeResource::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::pass":0,"P\\Tests\\Features\\Expect\\toBeScalar::failures":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeScalar::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::pass":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures":0.001,"P\\Tests\\Features\\Expect\\toBeString::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeString::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::strict_comparisons":0,"P\\Tests\\Features\\Expect\\toBeTrue::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTrue::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(true)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #1":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#('false')":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(1) #2":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_truthy#(-1)":0,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(false)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(null)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#(0)":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::passes_as_not_truthy#('0')":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeTruthy::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::pass":0.002,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableDirectory::not_failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::pass":0,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toBeWritableFile::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::passes_strings":0.002,"P\\Tests\\Features\\Expect\\toContain::passes_strings_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays":0,"P\\Tests\\Features\\Expect\\toContain::passes_arrays_with_multiple_needles":0,"P\\Tests\\Features\\Expect\\toContain::passes_with_array_needles":0,"P\\Tests\\Features\\Expect\\toContain::failures":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__all_failing_":0.001,"P\\Tests\\Features\\Expect\\toContain::not_failures_with_multiple_needles__some_failing_":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::pass":0.002,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toContainOnlyInstancesOf::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::pass":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures":0.001,"P\\Tests\\Features\\Expect\\toEndWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toEndWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqual::pass":0,"P\\Tests\\Features\\Expect\\toEqual::failures":0.002,"P\\Tests\\Features\\Expect\\toEqual::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqual::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::pass":0.003,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures":0.001,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualCanonicalizing::not_failures":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::pass":0.001,"P\\Tests\\Features\\Expect\\toEqualWithDelta::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toEqualWithDelta::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::pass":0,"P\\Tests\\Features\\Expect\\toHaveCount::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveCount::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::pass_with_value_check_and_plain_key_with_dots":0,"P\\Tests\\Features\\Expect\\toHaveKey::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_custom_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_nested_key_and_custom_message_with_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_nested_key":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::fails_with_wrong_value_and_plain_key_with_dots":0.002,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_nested_key":0.001,"P\\Tests\\Features\\Expect\\toHaveKey::not_failures_with_correct_value_and__with_plain_key_with_dots":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::pass":0,"P\\Tests\\Features\\Expect\\toHaveKeys::pass_with_multi_dimensional_arrays":0,"P\\Tests\\Features\\Expect\\toHaveKeys::failures":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::failures_with_multi_dimensional_arrays_and_custom_message":0.002,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveKeys::not_failures_with_multi_dimensional_arrays":0.002,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Fortaleza')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('Sollefte\u00e5')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#('\u0399\u03b5\u03c1\u03ac\u03c0\u03b5\u03c4\u03c1\u03b1')":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes#(stdClass Object (...))":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with_array":0,"P\\Tests\\Features\\Expect\\toHaveLength::it_passes_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_properly_fails_with__not_":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails":0.001,"P\\Tests\\Features\\Expect\\toHaveLength::it_fails_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::pass":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethod::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::pass":0,"P\\Tests\\Features\\Expect\\toHaveMethods::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveMethods::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperties::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperties::not_failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::pass":0,"P\\Tests\\Features\\Expect\\toHaveProperty::failures":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::failures_with_message_and_Any_matcher":0.001,"P\\Tests\\Features\\Expect\\toHaveProperty::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::pass":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures":0.001,"P\\Tests\\Features\\Expect\\toMatch::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatch::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::pass":0,"P\\Tests\\Features\\Expect\\toMatchArray::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchArray::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchArray::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::pass":0,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchConstraint::not_failures":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::pass":0,"P\\Tests\\Features\\Expect\\toMatchObject::pass_with_class":0,"P\\Tests\\Features\\Expect\\toMatchObject::failures":0.002,"P\\Tests\\Features\\Expect\\toMatchObject::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toMatchObject::not_failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::pass":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures":0.001,"P\\Tests\\Features\\Expect\\toStartWith::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toStartWith::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::passes":0.006,"P\\Tests\\Features\\Expect\\toThrow::failures_1":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_2":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_3":0.002,"P\\Tests\\Features\\Expect\\toThrow::failures_4":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_5":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_6":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_7":0.001,"P\\Tests\\Features\\Expect\\toThrow::failures_with_custom_message":0.001,"P\\Tests\\Features\\Expect\\toThrow::not_failures":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_parameter":0.001,"P\\Tests\\Features\\Expect\\toThrow::closure_missing_type_hint":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_non_defined_exception":0.001,"P\\Tests\\Features\\Expect\\toThrow::it_can_handle_a_class_not_found_Error":0.001,"P\\Tests\\Features\\Expect\\unless::it_pass":0,"P\\Tests\\Features\\Expect\\unless::it_failures":0.001,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\unless::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\unless::it_can_be_used_in_higher_order_tests":0.002,"P\\Tests\\Features\\Expect\\when::it_pass":0,"P\\Tests\\Features\\Expect\\when::it_failures":0.001,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy":0,"P\\Tests\\Features\\Expect\\when::it_runs_with_truthy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Expect\\when::it_can_be_used_in_higher_order_tests":0.001,"P\\Tests\\Features\\Helpers::it_can_set_get_properties_on__this":0.001,"P\\Tests\\Features\\Helpers::it_throws_error_if_property_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_allows_to_call_underlying_protected_private_methods":0.019,"P\\Tests\\Features\\Helpers::it_throws_error_if_method_do_not_exist":0.001,"P\\Tests\\Features\\Helpers::it_can_forward_unexpected_calls_to_any_global_function":0.001,"P\\Tests\\Features\\Helpers::it_can_use_helpers_from_helpers_file":0.001,"P\\Tests\\Features\\HigherOrderTests::it_proxies_calls_to_object":0,"P\\Tests\\Features\\HigherOrderTests::it_is_capable_doing_multiple_assertions":0,"P\\Tests\\Features\\HigherOrderTests::it_resolves_expect_callables_correctly":0.001,"P\\Tests\\Features\\HigherOrderTests::does_not_treat_method_names_as_callables":0,"P\\Tests\\Features\\HigherOrderTests::it_can_defer_a_method_until_after_test_setup":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_expect_callables#(1, 2, 3)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_datasets_into_the_defer_callable#(1, 2, 3)":0,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(1)":0.001,"P\\Tests\\Features\\HigherOrderTests::it_can_pass_shared_datasets_into_callables#(2)":0,"P\\Tests\\Features\\Incompleted::incompleted":0.004,"P\\Tests\\Features\\Incompleted::it_is_incompleted":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_skip":0.002,"P\\Tests\\Features\\Incompleted::it_is_incompleted_even_with_method_calls_like_group":0.002,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_expect":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_assert":0,"P\\Tests\\Features\\Incompleted::it_is_not_incompleted_because_of_test_with_assertions":0,"P\\Tests\\Features\\It::it_is_a_test":0,"P\\Tests\\Features\\It::it_is_a_higher_order_message_test":0,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______get__bar______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\PendingHigherOrderTests::get__foo______expect_true_____toBeTrue_":0.001,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::uses_dataset#('ScopedDatasets\/NestedDirector...ts.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory1\\TestFileInNestedDirectoryWithDatasetsFile::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\NestedDirectory2\\TestFileInNestedDirectory::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::uses_dataset#('ScopedDatasets\/ScopedDatasets.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithLocallyDefinedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(3)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(4)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#(5)":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::uses_dataset#('ScopedDatasets\/Datasets\/Scoped.php')":0,"P\\Tests\\Features\\ScopedDatasets\\Directory\\TestFileWithScopedDataset::the_right_dataset_is_taken":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(1)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::uses_dataset#(2)":0,"P\\Tests\\Features\\ScopedDatasets\\TestFileOutOfScope::the_right_dataset_is_taken":0,"P\\Tests\\Features\\Skip::it_do_not_skips":0,"P\\Tests\\Features\\Skip::it_skips_with_truthy":0.004,"P\\Tests\\Features\\Skip::it_skips_with_truthy_condition_by_default":0.003,"P\\Tests\\Features\\Skip::it_skips_with_message":0.003,"P\\Tests\\Features\\Skip::it_skips_with_truthy_closure_condition":0.003,"P\\Tests\\Features\\Skip::it_do_not_skips_with_falsy_closure_condition":0,"P\\Tests\\Features\\Skip::it_skips_with_condition_and_message":0.003,"P\\Tests\\Features\\Skip::it_skips_when_skip_after_assertion":0.003,"P\\Tests\\Features\\Skip::it_can_use_something_in_the_test_case_as_a_condition":0.003,"P\\Tests\\Features\\Skip::it_can_user_higher_order_callables_and_skip":0.003,"P\\Tests\\Features\\Test::a_test":0,"P\\Tests\\Features\\Test::higher_order_message_test":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_access_to_the_underlying_expectNotToPerformAssertions_method":0,"P\\Tests\\Features\\ThrowsNoExceptions::it_allows_performing_no_expectations_without_being_risky":0,"P\\Tests\\Features\\Todo::something_todo_later":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained":0.002,"P\\Tests\\Features\\Todo::something_todo_later_chained_and_with_function_body":0.002,"P\\Tests\\Features\\Todo::it_does_something_within_a_file_with_a_todo":0,"P\\Tests\\Fixtures\\DirectoryWithTests\\ExampleTest::it_example_1":0,"P\\Tests\\Fixtures\\ExampleTest::it_example_2":0,"P\\Tests\\Hooks\\AfterAllTest::global_afterAll_execution_order":0.001,"P\\Tests\\Hooks\\AfterAllTest::it_only_gets_called_once_per_file":0.001,"P\\Tests\\Hooks\\AfterEachTest::global_afterEach_execution_order":0.001,"P\\Tests\\Hooks\\BeforeAllTest::global_beforeAll_execution_order":0,"P\\Tests\\Hooks\\BeforeAllTest::it_only_gets_called_once_per_file":0,"P\\Tests\\Hooks\\BeforeEachTest::global_beforeEach_execution_order":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamecyFfd983TaoNeeMP::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ATestWithSpaces::it_runs_file_names_like__A_Test_With_Spaces_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\AdditionalFileExtension::it_runs_file_names_like__AdditionalFileExtension_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomAffixes\\FolderWithAn\\ExampleTest::trait_applied_in_this_file":0,"P\\Tests\\PHPUnit\\CustomAffixes\\ManyExtensions::it_runs_file_names_like__ManyExtensions_class_test_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\TestCaseWithQuotes::it_runs_file_names_like__Test__Case__With_Quotes_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\kebabcasespec::it_runs_file_names_like__kebab_case_spec_php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\snakecasespec::it_runs_file_names_like__snake_case_spec_php_":0,"Tests\\CustomTestCase\\ExecutedTest::testThatGetsExecuted":0.002,"P\\Tests\\PHPUnit\\CustomTestCase\\UsesPerDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder\\SubFolder\\UsesPerSubDirectory::closure_was_bound_to_CustomTestCase":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::custom_traits_can_be_used":0,"P\\Tests\\PHPUnit\\CustomTestCaseInSubFolders\\SubFolder2\\UsesPerFile::trait_applied_in_this_file":0,"P\\Tests\\Playground::basic":0,"P\\Tests\\Plugins\\Traits::it_allows_global_uses":0,"P\\Tests\\Plugins\\Traits::it_allows_multiple_global_uses_registered_in_the_same_path":0,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_no_phpunit_file_is_found":0.001,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_phpunit_is_not_a_valid_XML":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_failing_to_read_phpunit_content":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_there_is_no_test_suites_directory":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_has_no_value":0.003,"P\\Tests\\Unit\\ConfigLoader::it_fallbacks_to_default_path_if_test_suite_directory_does_not_exist":0.003,"P\\Tests\\Unit\\ConfigLoader::it_returns_the_parent_folder_of_first_test_suite_directory":0.003,"P\\Tests\\Unit\\Console\\Help::it_outputs_the_help_information_when___help_is_used":0.002,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_only_the_names_of_multiple_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_actual_dataset_of_multiple_non_named_datasets_in_their_description":0,"P\\Tests\\Unit\\DatasetsTests::it_show_the_correct_description_for_mixed_named_and_not_named_datasets":0,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_string_argument":0.001,"P\\Tests\\Unit\\Expectations\\OppositeExpectation::it_throw_expectation_failed_exception_with_array_argument":0.001,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_CI_when___ci_option_is_used":0,"P\\Tests\\Unit\\Plugins\\Environment::environment_is_set_to_Local_when___ci_option_is_not_used":0,"P\\Tests\\Unit\\Plugins\\Retry::it_retries_if___retry_argument_is_used":0,"P\\Tests\\Unit\\Support\\Backtrace::it_gets_file_name_from_called_file":0,"P\\Tests\\Unit\\Support\\Container::it_exists":0,"P\\Tests\\Unit\\Support\\Container::it_gets_an_instance":0,"P\\Tests\\Unit\\Support\\Container::autowire":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_creates_an_instance_and_resolves_also_sub_parameters":0,"P\\Tests\\Unit\\Support\\Container::it_can_resolve_builtin_value_types":0,"P\\Tests\\Unit\\Support\\Container::it_cannot_resolve_a_parameter_without_type":0.001,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datase...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Datasets.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_directory#('\/var\/www\/project\/tests\/Featur...ts.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datase...rs.php', false)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Datasets.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...rs.php', false) #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_can_check_if_dataset_is_defined_inside_a_Datasets_php_file#('\/var\/www\/project\/tests\/Featur...ts.php', true)":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datase...rs.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Datasets.php', '\/var\/www\/project\/tests')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #1":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Features')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...rs.php', '\/var\/www\/project\/tests\/Featur...rs.php') #2":0,"P\\Tests\\Unit\\Support\\DatasetInfo::it_computes_the_dataset_scope#('\/var\/www\/project\/tests\/Featur...ts.php', '\/var\/www\/project\/tests\/Featur...ollers')":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_file_name_from_closure":0,"P\\Tests\\Unit\\Support\\Reflection::it_gets_property_values":0.005,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version()', 'version__')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version__ ', 'version___')":0,"P\\Tests\\Unit\\Support\\Str::it_evaluates_the_code#('version\\', 'version_')":0,"P\\Tests\\Unit\\TestSuite::it_does_not_allow_to_add_the_same_test_description_twice":0.001,"P\\Tests\\Unit\\TestSuite::it_alerts_users_about_tests_with_arguments_but_no_input":0.001,"P\\Tests\\Unit\\TestSuite::it_can_return_an_array_of_all_test_suite_filenames":0,"P\\Tests\\Unit\\TestSuite::it_can_filter_the_test_suite_filenames_to_those_with_the_only_method":0,"P\\Tests\\Unit\\TestSuite::it_does_not_filter_the_test_suite_filenames_to_those_with_the_only_method_when_working_in_CI_pipeline":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName6rmgo1f1GLn8efOC::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVHq29Cibw1uV6U1a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamea7cf4nrSZKHtnPDI::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEu5uRcMG9MMq4iY0::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekRbYzSQbo3eEDuZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamel9LewlRc8ysgFzwA::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameP6CLcxXtYKqPawGB::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameblQKRYk4WHbDgYaq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameC83odp1h10QW1AG8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameaF5nmNeyTIsxjuvc::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_1":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_2":0,"P\\Tests\\Temporary\\B::it_can_run_a_test_3":0.001,"P\\Tests\\Temporary\\B::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_3":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_4":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5":0.003,"P\\Tests\\Temporary\\A::it_can_run_a_test_6":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(1)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(2)":0,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(3)":0.001,"P\\Tests\\Temporary\\A::it_can_run_a_test_5#(4)":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamekWQNLuXZGVg7drbd::it_runs_file_names_like_______________php_":0,"P\\Tests\\Unit\\Plugins\\Retry::it_orders_by_defects_and_stop_on_defects_if_when___retry_is_used_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMfC12NUVxMPFsfZt::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameqFOiUFZS8TAhZdx2::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Help::visual_snapshot_of_help_command_output":0.952,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_single_test":0.101,"P\\Tests\\Visual\\SingleTestOrDirectory::allows_to_run_a_directory":0.089,"P\\Tests\\Visual\\SingleTestOrDirectory::it_disable_decorating_printer_when_colors_is_set_to_never":0.082,"P\\Tests\\Visual\\Success::visual_snapshot_of_test_suite_on_success":3.703,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('Failure.php')":0.092,"P\\Tests\\Visual\\TeamCity::visual_snapshot_of_team_city#('SuccessOnly.php')":0.087,"P\\Tests\\Visual\\Todo::todo":0.104,"P\\Tests\\Visual\\Version::visual_snapshot_of_help_command_output":0.062,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameGa5Hof5xYfgU7lMm::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamegI0knrpHah3koRU5::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameK1b2wCDaZR2fNzot::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameRRcwre5IqsWxtj1X::it_runs_file_names_like_______________php_":0,"P\\Tests\\Visual\\Parallel::parallel":1.886,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWpEIvc5lfadROKrq::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName7NNosMyW8NgPRDQl::it_runs_file_names_like_______________php_":0,"P\\Tests\\Temporary\\A::it_wqdwqdq":0.001,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameywBXXYXHot0M9aNx::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamemyWLbj9wKt4Hcvn8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejEKsfjwlXzcj75KZ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameY1ztiQFAjM2sCP9a::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameCPg8tCjW1bio8poR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVL5GejEJRzFE8dE8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamei3V0ipVAdtS5Du1G::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamevlmyj7CoWap5IIUL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameVqWOjBNaAY3xtRXW::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameMkWAtgqckOgKszu2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameEilWT73afwKNb80N::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWFl73I5qFoNUzV4j::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamedC2WFvNhIaY1zNLl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameQSDsLymWdFeZNqx6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebfTWiP7tWBJhSrIl::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamebqMdmpMLEY1rsggn::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamepxQNmBJDzAY7U4db::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameyPnqVRbioUAvr7uR::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamejVMmuCN6RZEPZ4B7::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameF4LtCjQPpvOl08O6::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamezOhTy98sHNC51pC2::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName9PytFN2LVSAATIBL::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNamez55PZiKuaUNBf6ve::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNameWmIWFO2w1QQyf1E8::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestName8IOVcQ0E16ZwxoZJ::it_runs_file_names_like_______________php_":0,"P\\Tests\\PHPUnit\\CustomAffixes\\InvalidTestNametZJqcU8DD1NVWwu0::it_runs_file_names_like_______________php_":0}} \ No newline at end of file From 26369a19b4d215b9960fe7fe280faffccd3c59e6 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Mon, 13 Feb 2023 23:25:27 +0000 Subject: [PATCH 62/63] chore: coding style --- src/Plugins/Parallel.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Plugins/Parallel.php b/src/Plugins/Parallel.php index 8bba649c..b7f59137 100644 --- a/src/Plugins/Parallel.php +++ b/src/Plugins/Parallel.php @@ -28,6 +28,7 @@ final class Parallel implements HandlesArguments Parallel\Handlers\Pest::class, Parallel\Handlers\Laravel::class, ]; + /** * @var string[] */ @@ -42,6 +43,7 @@ final class Parallel implements HandlesArguments if ($argv->hasParameterOption('--parallel')) { return true; } + return $argv->hasParameterOption('-p'); } From 2df49947dfae382f3b197d6afb44b15bfd24a510 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Mon, 13 Feb 2023 23:25:35 +0000 Subject: [PATCH 63/63] chore: bumps dependencies --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2e347ef8..e66fa490 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,7 @@ ] }, "require-dev": { - "brianium/paratest": "^7.0.5", + "brianium/paratest": "^7.0.6", "pestphp/pest-dev-tools": "^2.4.0", "pestphp/pest-plugin-arch": "^2.0.0", "symfony/process": "^6.2.5"