Skip to content

Commit

Permalink
fix dumping tests to skip with data providers
Browse files Browse the repository at this point in the history
Without the fix running `SYMFONY_PHPUNIT_SKIPPED_TESTS='phpunit.skipped' php
./phpunit src/Symfony/Component/Lock/Tests/Store/DoctrineDbalPostgreSqlStoreTest.php`
without the pdo_pgsql extension enabled the generated skip file looked like this:

```
<?php return array (
  'PHPUnit\\Framework\\DataProviderTestSuite' =>
  array (
    'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest::testInvalidDriver' => 1,
  ),
  'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
  array (
    'testSaveAfterConflict' => 1,
    'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
    'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
    'testSave' => 1,
    'testSaveWithDifferentResources' => 1,
    'testSaveWithDifferentKeysOnSameResources' => 1,
    'testSaveTwice' => 1,
    'testDeleteIsolated' => 1,
    'testBlockingLocks' => 1,
    'testSharedLockReadFirst' => 1,
    'testSharedLockWriteFirst' => 1,
    'testSharedLockPromote' => 1,
    'testSharedLockPromoteAllowed' => 1,
    'testSharedLockDemote' => 1,
  ),
);
```

Thus, running the tests again with the extension enabled would only run 14
tests instead of the expected total number of 16 tests.

With the patch applied the generated skip file looks like this:

```
<?php return array (
  'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
  array (
    'testInvalidDriver with data set #0' => 1,
    'testInvalidDriver with data set #1' => 1,
    'testSaveAfterConflict' => 1,
    'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
    'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
    'testSave' => 1,
    'testSaveWithDifferentResources' => 1,
    'testSaveWithDifferentKeysOnSameResources' => 1,
    'testSaveTwice' => 1,
    'testDeleteIsolated' => 1,
    'testBlockingLocks' => 1,
    'testSharedLockReadFirst' => 1,
    'testSharedLockWriteFirst' => 1,
    'testSharedLockPromote' => 1,
    'testSharedLockPromoteAllowed' => 1,
    'testSharedLockDemote' => 1,
  ),
);
```
  • Loading branch information
xabbuh committed Nov 10, 2024
1 parent 3b233d9 commit c6839a1
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion Legacy/SymfonyTestsListenerTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

use Doctrine\Common\Annotations\AnnotationRegistry;
use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\DataProviderTestSuite;
use PHPUnit\Framework\RiskyTestError;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\TestSuite;
Expand Down Expand Up @@ -196,7 +197,13 @@ public function startTestSuite($suite)
public function addSkippedTest($test, \Exception $e, $time)
{
if (0 < $this->state) {
$this->isSkipped[\get_class($test)][$test->getName()] = 1;
if ($test instanceof DataProviderTestSuite) {
foreach ($test->tests() as $testWithDataProvider) {
$this->isSkipped[\get_class($testWithDataProvider)][$testWithDataProvider->getName()] = 1;
}
} else {
$this->isSkipped[\get_class($test)][$test->getName()] = 1;
}
}
}

Expand Down

0 comments on commit c6839a1

Please sign in to comment.