tests: adds collision tests

This commit is contained in:
Nuno Maduro
2023-03-21 23:55:33 +00:00
parent 43894afa18
commit bb6d6b0951
8 changed files with 108 additions and 4 deletions

View File

@ -71,7 +71,7 @@
"test:unit": "php bin/pest --colors=always --exclude-group=integration --compact",
"test:inline": "php bin/pest --colors=always --configuration=phpunit.inline.xml",
"test:parallel": "php bin/pest --colors=always --exclude-group=integration --parallel --processes=10",
"test:integration": "php bin/pest --colors=always --group=integration -v",
"test:integration": "php bin/pest --colors=always --group=integration",
"update:snapshots": "REBUILD_SNAPSHOTS=true php bin/pest --colors=always",
"test": [
"@test:refacto",

View File

@ -1,7 +1,11 @@
WARN Tests\Fixtures\CollisionTest
- error
- success
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
PASS Tests\Fixtures\ExampleTest
✓ it example 2
Tests: 2 passed (2 assertions)
Tests: 2 skipped, 2 passed (2 assertions)

View File

@ -0,0 +1,23 @@
.
────────────────────────────────────────────────────────────────────────────
FAILED Tests\Fixtures\CollisionTest > success Exception
error
at tests/Fixtures/CollisionTest.php:4
1▕ <?php
2▕
3▕ test('error', function () {
➜ 4▕ throw new Exception('error');
5▕ })->skip(! isset($_SERVER['COLLISION_TEST']));
6▕
7▕ test('success', function () {
8▕ expect(true)->toBeTrue();
9▕ })->skip(! isset($_SERVER['COLLISION_TEST']));
1 tests/Fixtures/CollisionTest.php:4
2 src/Factories/TestCaseMethodFactory.php:100
Tests: 1 failed, 1 passed (1 assertions)
Duration: 0.16s

View File

@ -0,0 +1,22 @@
FAIL Tests\Fixtures\CollisionTest
error
✓ success
────────────────────────────────────────────────────────────────────────────
FAILED Tests\Fixtures\CollisionTest > error Exception
error
at tests/Fixtures/CollisionTest.php:4
1▕ <?php
2▕
3▕ test('error', function () {
➜ 4▕ throw new Exception('error');
5▕ })->skip(! isset($_SERVER['COLLISION_TEST']));
6▕
7▕ test('success', function () {
8▕ expect(true)->toBeTrue();
9▕ })->skip(! isset($_SERVER['COLLISION_TEST']));
1 tests/Fixtures/CollisionTest.php:4
2 src/Factories/TestCaseMethodFactory.php:100

View File

@ -779,6 +779,10 @@
! warning → Undefined property: P\Tests\Features\Warnings::$fooqwdfwqdfqw
! user warning → This is a warning description
WARN Tests\Fixtures\CollisionTest
- error
- success
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
@ -969,6 +973,10 @@
PASS Tests\Visual\BeforeEachTestName
✓ latest description
PASS Tests\Visual\Collision
✓ collision with ([''])
✓ collision with (['--parallel'])
PASS Tests\Visual\Help
✓ visual snapshot of help command output
@ -994,4 +1002,4 @@
PASS Tests\Visual\Version
✓ visual snapshot of help command output
Tests: 2 deprecated, 3 warnings, 4 incomplete, 1 notice, 4 todos, 12 skipped, 699 passed (1696 assertions)
Tests: 2 deprecated, 3 warnings, 4 incomplete, 1 notice, 4 todos, 14 skipped, 701 passed (1698 assertions)

View File

@ -0,0 +1,9 @@
<?php
test('error', function () {
throw new Exception('error');
})->skip(! isset($_SERVER['COLLISION_TEST']));
test('success', function () {
expect(true)->toBeTrue();
})->skip(! isset($_SERVER['COLLISION_TEST']));

View File

@ -0,0 +1,38 @@
<?php
test('collision', function (array $arguments) {
$snapshot = __DIR__.'/../.snapshots/collision.txt';
if (in_array('--parallel', $arguments)) {
$snapshot = __DIR__.'/../.snapshots/collision-parallel.txt';
}
$output = function () use ($arguments) {
$process = (new Symfony\Component\Process\Process(
array_merge(['php', 'bin/pest', 'tests/Fixtures/CollisionTest.php'], $arguments),
null,
['COLLISION_PRINTER' => 'DefaultPrinter', 'COLLISION_IGNORE_DURATION' => 'true', 'COLLISION_TEST' => true]
));
$process->run();
return preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $process->getOutput());
};
if (getenv('REBUILD_SNAPSHOTS')) {
$outputContent = explode("\n", $output());
array_pop($outputContent);
array_pop($outputContent);
array_pop($outputContent);
array_pop($outputContent);
file_put_contents($snapshot, implode("\n", $outputContent));
$this->markTestSkipped('Snapshot rebuilt.');
}
expect($output())->toContain(file_get_contents($snapshot));
})->with([
[['']],
[['--parallel']],
])->skip(PHP_OS_FAMILY === 'Windows');

View File

@ -15,6 +15,6 @@ $run = function () {
};
test('parallel', function () use ($run) {
expect($run())->toContain('Tests: 2 deprecated, 3 warnings, 4 incomplete, 1 notice, 4 todos, 9 skipped, 690 passed (1684 assertions)')
expect($run())->toContain('Tests: 2 deprecated, 3 warnings, 4 incomplete, 1 notice, 4 todos, 11 skipped, 690 passed (1684 assertions)')
->toContain('Parallel: 3 processes');
})->skip(PHP_OS_FAMILY === 'Windows');