mirror of
https://github.com/pestphp/pest.git
synced 2026-03-05 23:37:22 +01:00
29 lines
968 B
PHP
29 lines
968 B
PHP
<?php
|
|
|
|
test('visual snapshot of test suite on success', function () {
|
|
$testsPath = dirname(__DIR__);
|
|
$snapshot = implode(DIRECTORY_SEPARATOR, [
|
|
$testsPath,
|
|
'.snapshots',
|
|
'success.txt',
|
|
]);
|
|
|
|
$output = function () use ($testsPath) {
|
|
$process = (new Symfony\Component\Process\Process(['php', 'bin/pest'], dirname($testsPath), ['EXCLUDE' => 'integration', 'REBUILD_SNAPSHOTS' => false]));
|
|
|
|
$process->run();
|
|
|
|
return preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $process->getOutput());
|
|
};
|
|
|
|
if (getenv('REBUILD_SNAPSHOTS')) {
|
|
file_put_contents($snapshot, $output());
|
|
} elseif (!getenv('EXCLUDE')) {
|
|
$output = explode("\n", $output());
|
|
array_pop($output);
|
|
array_pop($output);
|
|
expect(file_get_contents($snapshot))->toContain(implode("\n", $output));
|
|
}
|
|
})->skip(!getenv('REBUILD_SNAPSHOTS') && getenv('EXCLUDE'))
|
|
->skip(PHP_OS_FAMILY === 'Windows');
|