Skip to content

Commit

Permalink
Fix: Sleep in hooks and data providers
Browse files Browse the repository at this point in the history
  • Loading branch information
localheinz committed Dec 18, 2023
1 parent 99464cc commit 1b28da2
Show file tree
Hide file tree
Showing 8 changed files with 174 additions and 14 deletions.
24 changes: 24 additions & 0 deletions psalm-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@
<file src="test/EndToEnd/Version10/DefaultConfiguration/SleeperTest.php">
<PossiblyUnusedMethod>
<code>provideMillisecondsGreaterThanDefaultMaximumDuration</code>
<code>sleepAfter</code>
<code>sleepAfterClass</code>
<code>sleepBefore</code>
<code>sleepBeforeClass</code>
</PossiblyUnusedMethod>
</file>
<file src="test/EndToEnd/Version11/CustomConfiguration/SleeperTest.php">
Expand All @@ -78,6 +82,26 @@
<file src="test/EndToEnd/Version11/DefaultConfiguration/SleeperTest.php">
<PossiblyUnusedMethod>
<code>provideMillisecondsGreaterThanDefaultMaximumDuration</code>
<code>sleepAfter</code>
<code>sleepAfterClass</code>
<code>sleepBefore</code>
<code>sleepBeforeClass</code>
</PossiblyUnusedMethod>
</file>
<file src="test/EndToEnd/Version8/DefaultConfiguration/SleeperTest.php">
<PossiblyUnusedMethod>
<code>sleepAfter</code>
<code>sleepAfterClass</code>
<code>sleepBefore</code>
<code>sleepBeforeClass</code>
</PossiblyUnusedMethod>
</file>
<file src="test/EndToEnd/Version9/DefaultConfiguration/SleeperTest.php">
<PossiblyUnusedMethod>
<code>sleepAfter</code>
<code>sleepAfterClass</code>
<code>sleepBefore</code>
<code>sleepBeforeClass</code>
</PossiblyUnusedMethod>
</file>
<file src="test/Fixture/Sleeper.php">
Expand Down
28 changes: 28 additions & 0 deletions test/EndToEnd/Version10/DefaultConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,30 @@ protected function tearDown(): void
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\BeforeClass]
public function sleepBeforeClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\Before]
public function sleepBefore(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\After]
public function sleepAfter(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\AfterClass]
public function sleepAfterClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

public function testSleeperSleepsShorterThanDefaultMaximumDuration(): void
{
$milliseconds = 50;
Expand Down Expand Up @@ -353,7 +377,11 @@ public static function provideMillisecondsGreaterThanDefaultMaximumDuration(): i
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down
28 changes: 28 additions & 0 deletions test/EndToEnd/Version11/DefaultConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,30 @@ protected function tearDown(): void
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\BeforeClass]
public function sleepBeforeClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\Before]
public function sleepBefore(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\After]
public function sleepAfter(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

#[Framework\Attributes\AfterClass]
public function sleepAfterClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

public function testSleeperSleepsShorterThanDefaultMaximumDuration(): void
{
$milliseconds = 50;
Expand Down Expand Up @@ -353,7 +377,11 @@ public static function provideMillisecondsGreaterThanDefaultMaximumDuration(): i
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down
4 changes: 4 additions & 0 deletions test/EndToEnd/Version8/CustomConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ public static function provideMillisecondsGreaterThanMaximumDurationFromXmlConfi
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down
36 changes: 36 additions & 0 deletions test/EndToEnd/Version8/DefaultConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,38 @@ protected function tearDown(): void
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @beforeClass
*/
public function sleepBeforeClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @before
*/
public function sleepBefore(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @after
*/
public function sleepAfter(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @afterClass
*/
public function sleepAfterClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

public function testSleeperSleepsShorterThanDefaultMaximumDuration(): void
{
$milliseconds = 50;
Expand Down Expand Up @@ -298,7 +330,11 @@ public static function provideMillisecondsGreaterThanDefaultMaximumDuration(): i
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down
28 changes: 14 additions & 14 deletions test/EndToEnd/Version8/DefaultConfiguration/test.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,20 @@ Random %seed: %s

..................... 21 / 21 (100%)

Detected 12 tests that took longer than expected.

1. 1.2%s (1.000) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidSlowThresholdAndMaximumDurationAnnotation
2. 1.1%s (1.000) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidMaximumDurationAndSlowThresholdAnnotation
3. 1.1%s (0.900) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanSlowThresholdFromAnnotationWithValidSlowThresholdAnnotation
4. 1.0%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWhenRunningInSeparateProcess
5. 1.0%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithInvalidSlowThresholdAnnotation
6. 1.0%s (0.800) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidMaximumDurationAnnotation
7. 0.9%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithInvalidMaximumDurationAnnotation
8. 0.9%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithUselessDocBlock
9. 0.8%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDuration
10. 0.7%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithDataProvider with data set #2 (600)

There are 2 additional slow tests that are not listed here.
Detected 13 tests that took longer than expected.

1. 1.3%s (1.000) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidSlowThresholdAndMaximumDurationAnnotation
2. 1.2%s (1.000) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidMaximumDurationAndSlowThresholdAnnotation
3. 1.2%s (0.900) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanSlowThresholdFromAnnotationWithValidSlowThresholdAnnotation
4. 1.1%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWhenRunningInSeparateProcess
5. 1.1%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithInvalidSlowThresholdAnnotation
6. 1.1%s (0.800) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanMaximumDurationFromAnnotationWithValidMaximumDurationAnnotation
7. 1.0%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithInvalidMaximumDurationAnnotation
8. 1.0%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithUselessDocBlock
9. 0.9%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDuration
10. 0.8%s (0.500) Ergebnis\PHPUnit\SlowTestDetector\Test\EndToEnd\Version8\DefaultConfiguration\SleeperTest::testSleeperSleepsLongerThanDefaultMaximumDurationWithDataProvider with data set #2 (600)

There are 3 additional slow tests that are not listed here.

Time: %s, Memory: %s

Expand Down
4 changes: 4 additions & 0 deletions test/EndToEnd/Version9/CustomConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ public static function provideMillisecondsGreaterThanMaximumDurationFromXmlConfi
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down
36 changes: 36 additions & 0 deletions test/EndToEnd/Version9/DefaultConfiguration/SleeperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,38 @@ protected function tearDown(): void
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @beforeClass
*/
public function sleepBeforeClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @before
*/
public function sleepBefore(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @after
*/
public function sleepAfter(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

/**
* @afterClass
*/
public function sleepAfterClass(): void
{
Test\Fixture\Sleeper::fromMilliseconds(50)->sleep();
}

public function testSleeperSleepsShorterThanDefaultMaximumDuration(): void
{
$milliseconds = 50;
Expand Down Expand Up @@ -298,7 +330,11 @@ public static function provideMillisecondsGreaterThanDefaultMaximumDuration(): i
50,
);

$sleeper = Test\Fixture\Sleeper::fromMilliseconds(100);

foreach ($values as $value) {
$sleeper->sleep();

yield $value => [
$value,
];
Expand Down

0 comments on commit 1b28da2

Please sign in to comment.