Merge branch 'master' into feature/add-container

This commit is contained in:
Nuno Maduro
2020-06-05 22:39:02 +02:00
committed by GitHub
20 changed files with 146 additions and 88 deletions

View File

@ -0,0 +1,7 @@
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
PASS Tests\Fixtures\ExampleTest
✓ it example 2
Tests: 2 passed

View File

@ -0,0 +1,4 @@
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
Tests: 1 passed

View File

@ -0,0 +1,5 @@
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
it example 1
Tests: 1 passed

View File

@ -0,0 +1,5 @@
 PASS  Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
Tests: 1 passed

View File

@ -1,5 +1,5 @@
PASS Tests\CustomTestCase\PhpunitTest
PASS Tests\CustomTestCase\ExecutedTest
✓ that gets executed
PASS Tests\Features\AfterAll
@ -24,7 +24,7 @@
✓ it sets arrays
✓ it gets bound to test case object with ('a')
✓ it gets bound to test case object with ('b')
✓ it truncates the description with (' fooo fooo fooo fooo fooo fooo fooo f...oo fooo')
✓ it truncates the description with ('FoooFoooFoooFoooFoooFoooFoooF...ooFooo')
✓ lazy datasets with (1)
✓ lazy datasets with (2)
✓ lazy datasets did the job right
@ -40,10 +40,10 @@
✓ eager wrapped registered datasets with (1)
✓ eager wrapped registered datasets with (2)
✓ eager registered wrapped datasets did the job right
✓ lazy named datasets with ( bar object (...))
✓ lazy named datasets with (Bar Object (...))
PASS Tests\Features\Exceptions
✓ it gives access the the underlying expect exception
✓ it gives access the the underlying expectException
✓ it catch exceptions
✓ it catch exceptions and messages
@ -64,8 +64,8 @@
✓ it has bar
PASS Tests\Features\PendingHigherOrderTests
✓ get 'foo' → get 'bar' → assert true true
✓ get 'foo' → assert true true
✓ get 'foo' → get 'bar' → assertTrue true
✓ get 'foo' → assertTrue true
WARN Tests\Features\Skip
✓ it do not skips
@ -81,16 +81,16 @@
✓ higher order message test
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example
✓ it example 1
PASS Tests\Fixtures\ExampleTest
✓ it example
✓ it example 2
PASS Tests\PHPUnit\CustomTestCase\UsesPerDirectory
✓ closure was bound to custom test case
✓ closure was bound to CustomTestCase
PASS Tests\PHPUnit\CustomTestCaseInSubFolders\SubFolder\SubFolder\UsesPerSubDirectory
✓ closure was bound to custom test case
✓ closure was bound to CustomTestCase
PASS Tests\PHPUnit\CustomTestCaseInSubFolders\SubFolder2\UsesPerFile
✓ custom traits can be used
@ -137,7 +137,7 @@
PASS Tests\Visual\SingleTestOrDirectory
✓ allows to run a single test
✓ allows to run a directory
✓ it has ascii chars (decorated printer)
✓ it has ascii chars
✓ it disable decorating printer when colors is set to never
WARN Tests\Visual\Success

View File

@ -1,3 +1,3 @@
<?php
it('example')->assertTrue(true);
it('example 1')->assertTrue(true);

View File

@ -1,3 +1,3 @@
<?php
it('example')->assertTrue(true);
it('example 2')->assertTrue(true);

View File

@ -7,7 +7,7 @@ namespace Tests\CustomTestCase;
use function PHPUnit\Framework\assertTrue;
use PHPUnit\Framework\TestCase;
class PhpunitTest extends TestCase
class ExecutedTest extends TestCase
{
public static $executed = false;
@ -16,8 +16,8 @@ class PhpunitTest extends TestCase
{
self::$executed = true;
$this->assertTrue(true);
assertTrue(true);
}
}
// register_shutdown_function(fn () => assertTrue(PhpunitTest::$executed));
// register_shutdown_function(fn () => assertTrue(ExecutedTest::$executed));

View File

@ -2,53 +2,47 @@
use Symfony\Component\Process\Process;
$run = function (string $target) {
$process = new Process(['./bin/pest', $target], dirname(__DIR__, 2));
$run = function (string $target, $decorated = false) {
$process = new Process(['php', 'bin/pest', $target], dirname(__DIR__, 2));
$process->run();
return preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $process->getOutput());
return $decorated ? $process->getOutput() : preg_replace('#\\x1b[[][^A-Za-z]*[A-Za-z]#', '', $process->getOutput());
};
test('allows to run a single test', function () use ($run) {
assertStringContainsString(<<<EOF
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
it example
$snapshot = function ($name) {
$testsPath = dirname(__DIR__);
Tests: 1 passed
EOF, $run('tests/Fixtures/DirectoryWithTests/ExampleTest.php'));
return file_get_contents(implode(DIRECTORY_SEPARATOR, [
$testsPath,
'.snapshots',
"$name.txt",
]));
};
test('allows to run a single test', function () use ($run, $snapshot) {
assertStringContainsString(
$snapshot('allows-to-run-a-single-test'),
$run('tests/Fixtures/DirectoryWithTests/ExampleTest.php'));
});
test('allows to run a directory', function () use ($run) {
assertStringContainsString(<<<EOF
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
it example
PASS Tests\Fixtures\ExampleTest
it example
Tests: 2 passed
EOF, $run('tests/Fixtures'));
test('allows to run a directory', function () use ($run, $snapshot) {
assertStringContainsString(
$snapshot('allows-to-run-a-directory'),
$run('tests/Fixtures')
);
});
it('has ascii chars (decorated printer)', function () {
$process = new Process([
'./bin/pest',
'tests/Fixtures/DirectoryWithTests/ExampleTest.php',
], dirname(__DIR__, 2));
$process->run();
$output = $process->getOutput();
assertStringContainsString(<<<EOF
\e[30;42;1m PASS \e[39;49;22m\e[39m Tests\Fixtures\DirectoryWithTests\ExampleTest\e[39m
\e[32;1m✓\e[39;22m\e[39m \e[2mit example\e[22m\e[39m
\e[37;1mTests: \e[39;22m\e[32;1m1 passed\e[39;22m
EOF, $output);
});
it('disable decorating printer when colors is set to never', function () {
it('has ascii chars', function () use ($run, $snapshot) {
assertStringContainsString(
$snapshot('has-ascii-chars'),
$run('tests/Fixtures/DirectoryWithTests/ExampleTest.php', true)
);
});
it('disable decorating printer when colors is set to never', function () use ($snapshot) {
$process = new Process([
'php',
'./bin/pest',
'--colors=never',
'tests/Fixtures/DirectoryWithTests/ExampleTest.php',
@ -56,10 +50,8 @@ it('disable decorating printer when colors is set to never', function () {
$process->run();
$output = $process->getOutput();
assertStringContainsString(<<<EOF
PASS Tests\Fixtures\DirectoryWithTests\ExampleTest
\e[2mit example\e[22m
Tests: 1 passed
EOF, $output);
assertStringContainsString(
$snapshot('disable-decorating-printer'),
$output
);
});

View File

@ -9,7 +9,7 @@ test('visual snapshot of test suite on success', function () {
]);
$output = function () use ($testsPath) {
$process = (new Symfony\Component\Process\Process(['./bin/pest'], dirname($testsPath), ['EXCLUDE' => 'integration', 'REBUILD_SNAPSHOTS' => false]));
$process = (new Symfony\Component\Process\Process(['php', 'bin/pest'], dirname($testsPath), ['EXCLUDE' => 'integration', 'REBUILD_SNAPSHOTS' => false]));
$process->run();
@ -24,4 +24,5 @@ test('visual snapshot of test suite on success', function () {
array_pop($output);
assertStringContainsString(implode("\n", $output), file_get_contents($snapshot));
}
})->skip(!getenv('REBUILD_SNAPSHOTS') && getenv('EXCLUDE'));
})->skip(!getenv('REBUILD_SNAPSHOTS') && getenv('EXCLUDE'))
->skip(PHP_OS_FAMILY === 'Windows', 'File sorting algorithm causes different test order on Windows');

6
tests/Visual/foo.txt Normal file
View File

@ -0,0 +1,6 @@
 PASS  Tests\Fixtures\DirectoryWithTests\ExampleTest
✓ it example 1
Tests: 1 passed
Time: 0.04s