mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 15:57:21 +01:00
Adds a new method, isInParallel, to the Testable trait to allow a test to determine its parallel status.
This commit is contained in:
@ -304,4 +304,12 @@ trait Testable
|
|||||||
{
|
{
|
||||||
return ltrim(self::class, 'P\\');
|
return ltrim(self::class, 'P\\');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether this test case is being executed in a parallel environment.
|
||||||
|
*/
|
||||||
|
public function isInParallel(): bool
|
||||||
|
{
|
||||||
|
return TestSuite::getInstance()->isInParallel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Pest\Concerns\Testable;
|
||||||
use Pest\Datasets;
|
use Pest\Datasets;
|
||||||
use Pest\Expectation;
|
use Pest\Expectation;
|
||||||
use Pest\PendingObjects\AfterEachCall;
|
use Pest\PendingObjects\AfterEachCall;
|
||||||
@ -85,7 +86,7 @@ if (!function_exists('test')) {
|
|||||||
* is the test description; the second argument is
|
* is the test description; the second argument is
|
||||||
* a closure that contains the test expectations.
|
* a closure that contains the test expectations.
|
||||||
*
|
*
|
||||||
* @return TestCall|TestCase|mixed
|
* @return TestCall|TestCase|Testable|mixed
|
||||||
*/
|
*/
|
||||||
function test(string $description = null, Closure $closure = null)
|
function test(string $description = null, Closure $closure = null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -485,6 +485,11 @@
|
|||||||
✓ it can call chained macro method
|
✓ it can call chained macro method
|
||||||
✓ it will throw exception from call if no macro exists
|
✓ it will throw exception from call if no macro exists
|
||||||
|
|
||||||
|
WARN Tests\Features\Parallel
|
||||||
|
- it can determine in the test case if it is running in parallel
|
||||||
|
✓ it can determine in the test case if it is not running in parallel
|
||||||
|
✓ it can skip using the test case based on parallel status
|
||||||
|
|
||||||
PASS Tests\Features\PendingHigherOrderTests
|
PASS Tests\Features\PendingHigherOrderTests
|
||||||
✓ get 'foo'
|
✓ get 'foo'
|
||||||
✓ get 'foo' → get 'bar' → expect true → toBeTrue
|
✓ get 'foo' → get 'bar' → expect true → toBeTrue
|
||||||
@ -647,5 +652,5 @@
|
|||||||
✓ it is a test
|
✓ it is a test
|
||||||
✓ it uses correct parent class
|
✓ it uses correct parent class
|
||||||
|
|
||||||
Tests: 4 incompleted, 9 skipped, 419 passed
|
Tests: 4 incompleted, 10 skipped, 421 passed
|
||||||
|
|
||||||
15
tests/Features/Parallel.php
Normal file
15
tests/Features/Parallel.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Pest\TestSuite;
|
||||||
|
|
||||||
|
it('can determine in the test case if it is running in parallel', function () {
|
||||||
|
expect(test()->isInParallel())->toBeTrue();
|
||||||
|
})->skip(!TestSuite::getInstance()->isInParallel);
|
||||||
|
|
||||||
|
it('can determine in the test case if it is not running in parallel', function () {
|
||||||
|
expect(test()->isInParallel())->toBeFalse();
|
||||||
|
})->skip(TestSuite::getInstance()->isInParallel);
|
||||||
|
|
||||||
|
it('can skip using the test case based on parallel status', function () {
|
||||||
|
expect(TestSuite::getInstance()->isInParallel)->toBeFalse();
|
||||||
|
})->skip(function () { return $this->isInParallel(); });
|
||||||
Reference in New Issue
Block a user