Open willemstuursma opened 8 years ago
@willemstuursma thanks for this issue, it makes a good edge case for testing rebustness of test execution reordering. I've have added it as a test for my Breakfast project: https://github.com/epdenouden/phpunit/blob/breakfast/tests/Runner/TestSuiteSorterEmptyTestCaseTest.php Let me know if you have any questions or requests!
The following test will crash PHPUnit if phpunit-clever-and-smart is registered as a test listener:
Apparently, if an entire class is skipped instead of a single test method, a
PHPUnit_Framework_TestSuite
object is passed to\PHPUnit\Runner\CleverAndSmart\TestListener::addSkippedTest
. This object implements the\PHPUnit_Framework_Test
interface. However in\PHPUnit\Runner\CleverAndSmart\Storage\Sqlite3Storage::record
, suddenly a\PHPUnit_Framework_TestCase
object is required. The typehint fails, crashing the phpunit process.Fatal error: Uncaught exception 'ErrorException' with message 'Argument 2 passed to PHPUnit\Runner\CleverAndSmart\Storage\Sqlite3Storage::record() must be an instance of PHPUnit_Framework_TestCase, instance of PHPUnit_Framework_TestSuite given, called in /Users/willem/Sites/mollie/vendor/lstrojny/phpunit-clever-and-smart/src/PHPUnit/Runner/CleverAndSmart/TestListener.php on line 107 and defined' in /Users/willem/Sites/mollie/vendor/lstrojny/phpunit-clever-and-smart/src/PHPUnit/Runner/CleverAndSmart/Storage/Sqlite3Storage.php on line 73
Call stack: