Skip to content

Commit 246e1a0

Browse files
Add tests for ordering tests by duration
1 parent 6575e9e commit 246e1a0

File tree

9 files changed

+362
-0
lines changed

9 files changed

+362
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php declare(strict_types=1);
2+
/*
3+
* This file is part of PHPUnit.
4+
*
5+
* (c) Sebastian Bergmann <[email protected]>
6+
*
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*/
10+
namespace PHPUnit\TestFixture\ExecutionOrder\Duration;
11+
12+
use PHPUnit\Framework\Attributes\CoversNothing;
13+
use PHPUnit\Framework\TestCase;
14+
15+
#[CoversNothing]
16+
final class BarTest extends TestCase
17+
{
18+
public function testOne(): void
19+
{
20+
// sleep(6);
21+
22+
$this->assertTrue(true);
23+
}
24+
25+
public function testTwo(): void
26+
{
27+
// sleep(1);
28+
29+
$this->assertTrue(true);
30+
}
31+
32+
public function testThree(): void
33+
{
34+
// sleep(5);
35+
36+
$this->assertTrue(true);
37+
}
38+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php declare(strict_types=1);
2+
/*
3+
* This file is part of PHPUnit.
4+
*
5+
* (c) Sebastian Bergmann <[email protected]>
6+
*
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*/
10+
namespace PHPUnit\TestFixture\ExecutionOrder\Duration;
11+
12+
use PHPUnit\Framework\Attributes\CoversNothing;
13+
use PHPUnit\Framework\TestCase;
14+
15+
#[CoversNothing]
16+
final class FooTest extends TestCase
17+
{
18+
public function testOne(): void
19+
{
20+
// sleep(3);
21+
22+
$this->assertTrue(true);
23+
}
24+
25+
public function testTwo(): void
26+
{
27+
// sleep(4);
28+
29+
$this->assertTrue(true);
30+
}
31+
32+
public function testThree(): void
33+
{
34+
// sleep(2);
35+
36+
$this->assertTrue(true);
37+
}
38+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":2,"defects":[],"times":{"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\BarTest::testOne":6.013,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\BarTest::testTwo":1.001,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\BarTest::testThree":5.001,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testOne":3.001,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testTwo":4.002,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testThree":2.001}}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php declare(strict_types=1);
2+
/*
3+
* This file is part of PHPUnit.
4+
*
5+
* (c) Sebastian Bergmann <[email protected]>
6+
*
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*/
10+
namespace PHPUnit\TestFixture\ExecutionOrder\Duration;
11+
12+
use PHPUnit\Framework\Attributes\CoversNothing;
13+
use PHPUnit\Framework\TestCase;
14+
15+
#[CoversNothing]
16+
final class FooTest extends TestCase
17+
{
18+
public function testOne(): void
19+
{
20+
// sleep(3);
21+
22+
$this->assertTrue(true);
23+
}
24+
25+
public function testTwo(): void
26+
{
27+
// sleep(1);
28+
29+
$this->assertTrue(true);
30+
}
31+
32+
public function testThree(): void
33+
{
34+
// sleep(2);
35+
36+
$this->assertTrue(true);
37+
}
38+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":2,"defects":[],"times":{"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testOne":3.013,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testTwo":1.001,"PHPUnit\\TestFixture\\ExecutionOrder\\Duration\\FooTest::testThree":2.001}}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
--TEST--
2+
Order by duration (without result cache)
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$testResultsFile = sys_get_temp_dir() . '/test-results';
6+
7+
if (file_exists($testResultsFile)) {
8+
unlink($testResultsFile);
9+
}
10+
11+
$_SERVER['argv'][] = '--no-configuration';
12+
$_SERVER['argv'][] = '--cache-directory';
13+
$_SERVER['argv'][] = sys_get_temp_dir();
14+
$_SERVER['argv'][] = '--order-by';
15+
$_SERVER['argv'][] = 'duration';
16+
$_SERVER['argv'][] = '--debug';
17+
$_SERVER['argv'][] = __DIR__ . '/fixture/test-classes-with-duration';
18+
19+
require __DIR__ . '/../../bootstrap.php';
20+
21+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
22+
--EXPECTF--
23+
PHPUnit Started (PHPUnit %s using %s)
24+
Test Runner Configured
25+
Test Suite Loaded (6 tests)
26+
Event Facade Sealed
27+
Test Runner Started
28+
Test Suite Sorted
29+
Test Runner Execution Started (6 tests)
30+
Test Suite Started (CLI Arguments, 6 tests)
31+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest, 3 tests)
32+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
33+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
34+
Assertion Succeeded (Constraint: is true, Value: true)
35+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
36+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
37+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
38+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
39+
Assertion Succeeded (Constraint: is true, Value: true)
40+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
41+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
42+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
43+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
44+
Assertion Succeeded (Constraint: is true, Value: true)
45+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
46+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
47+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest, 3 tests)
48+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
49+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
50+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
51+
Assertion Succeeded (Constraint: is true, Value: true)
52+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
53+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
54+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
55+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
56+
Assertion Succeeded (Constraint: is true, Value: true)
57+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
58+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
59+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
60+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
61+
Assertion Succeeded (Constraint: is true, Value: true)
62+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
63+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
64+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
65+
Test Suite Finished (CLI Arguments, 6 tests)
66+
Test Runner Execution Finished
67+
Test Runner Finished
68+
PHPUnit Finished (Shell Exit Code: 0)
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
--TEST--
2+
Order by duration (with result cache)
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$testResultsFile = sys_get_temp_dir() . '/test-results';
6+
7+
if (file_exists($testResultsFile)) {
8+
unlink($testResultsFile);
9+
}
10+
11+
copy(__DIR__ . '/fixture/test-classes-with-duration/test-results', $testResultsFile);
12+
13+
$_SERVER['argv'][] = '--no-configuration';
14+
$_SERVER['argv'][] = '--cache-directory';
15+
$_SERVER['argv'][] = sys_get_temp_dir();
16+
$_SERVER['argv'][] = '--order-by';
17+
$_SERVER['argv'][] = 'duration';
18+
$_SERVER['argv'][] = '--debug';
19+
$_SERVER['argv'][] = __DIR__ . '/fixture/test-classes-with-duration';
20+
21+
require __DIR__ . '/../../bootstrap.php';
22+
23+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
24+
25+
unlink($testResultsFile);
26+
--EXPECTF--
27+
PHPUnit Started (PHPUnit %s using %s)
28+
Test Runner Configured
29+
Test Suite Loaded (6 tests)
30+
Event Facade Sealed
31+
Test Runner Started
32+
Test Suite Sorted
33+
Test Runner Execution Started (6 tests)
34+
Test Suite Started (CLI Arguments, 6 tests)
35+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest, 3 tests)
36+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
37+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
38+
Assertion Succeeded (Constraint: is true, Value: true)
39+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
40+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testTwo)
41+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
42+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
43+
Assertion Succeeded (Constraint: is true, Value: true)
44+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
45+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testThree)
46+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
47+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
48+
Assertion Succeeded (Constraint: is true, Value: true)
49+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
50+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest::testOne)
51+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\BarTest, 3 tests)
52+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
53+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
54+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
55+
Assertion Succeeded (Constraint: is true, Value: true)
56+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
57+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
58+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
59+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
60+
Assertion Succeeded (Constraint: is true, Value: true)
61+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
62+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
63+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
64+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
65+
Assertion Succeeded (Constraint: is true, Value: true)
66+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
67+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
68+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
69+
Test Suite Finished (CLI Arguments, 6 tests)
70+
Test Runner Execution Finished
71+
Test Runner Finished
72+
PHPUnit Finished (Shell Exit Code: 0)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
--TEST--
2+
Order by duration (without result cache)
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$testResultsFile = sys_get_temp_dir() . '/test-results';
6+
7+
if (file_exists($testResultsFile)) {
8+
unlink($testResultsFile);
9+
}
10+
11+
$_SERVER['argv'][] = '--no-configuration';
12+
$_SERVER['argv'][] = '--cache-directory';
13+
$_SERVER['argv'][] = sys_get_temp_dir();
14+
$_SERVER['argv'][] = '--order-by';
15+
$_SERVER['argv'][] = 'duration';
16+
$_SERVER['argv'][] = '--debug';
17+
$_SERVER['argv'][] = __DIR__ . '/fixture/test-methods-with-duration';
18+
19+
require __DIR__ . '/../../bootstrap.php';
20+
21+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
22+
--EXPECTF--
23+
PHPUnit Started (PHPUnit %s using %s)
24+
Test Runner Configured
25+
Test Suite Loaded (3 tests)
26+
Event Facade Sealed
27+
Test Runner Started
28+
Test Suite Sorted
29+
Test Runner Execution Started (3 tests)
30+
Test Suite Started (CLI Arguments, 3 tests)
31+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
32+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
33+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
34+
Assertion Succeeded (Constraint: is true, Value: true)
35+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
36+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
37+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
38+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
39+
Assertion Succeeded (Constraint: is true, Value: true)
40+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
41+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
42+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
43+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
44+
Assertion Succeeded (Constraint: is true, Value: true)
45+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
46+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
47+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
48+
Test Suite Finished (CLI Arguments, 3 tests)
49+
Test Runner Execution Finished
50+
Test Runner Finished
51+
PHPUnit Finished (Shell Exit Code: 0)
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
--TEST--
2+
Order by duration (with result cache)
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$testResultsFile = sys_get_temp_dir() . '/test-results';
6+
7+
if (file_exists($testResultsFile)) {
8+
unlink($testResultsFile);
9+
}
10+
11+
copy(__DIR__ . '/fixture/test-methods-with-duration/test-results', $testResultsFile);
12+
13+
$_SERVER['argv'][] = '--no-configuration';
14+
$_SERVER['argv'][] = '--cache-directory';
15+
$_SERVER['argv'][] = sys_get_temp_dir();
16+
$_SERVER['argv'][] = '--order-by';
17+
$_SERVER['argv'][] = 'duration';
18+
$_SERVER['argv'][] = '--debug';
19+
$_SERVER['argv'][] = __DIR__ . '/fixture/test-methods-with-duration';
20+
21+
require __DIR__ . '/../../bootstrap.php';
22+
23+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
24+
25+
unlink($testResultsFile);
26+
--EXPECTF--
27+
PHPUnit Started (PHPUnit %s using %s)
28+
Test Runner Configured
29+
Test Suite Loaded (3 tests)
30+
Event Facade Sealed
31+
Test Runner Started
32+
Test Suite Sorted
33+
Test Runner Execution Started (3 tests)
34+
Test Suite Started (CLI Arguments, 3 tests)
35+
Test Suite Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
36+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
37+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
38+
Assertion Succeeded (Constraint: is true, Value: true)
39+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
40+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testTwo)
41+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
42+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
43+
Assertion Succeeded (Constraint: is true, Value: true)
44+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
45+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testThree)
46+
Test Preparation Started (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
47+
Test Prepared (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
48+
Assertion Succeeded (Constraint: is true, Value: true)
49+
Test Passed (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
50+
Test Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest::testOne)
51+
Test Suite Finished (PHPUnit\TestFixture\ExecutionOrder\Duration\FooTest, 3 tests)
52+
Test Suite Finished (CLI Arguments, 3 tests)
53+
Test Runner Execution Finished
54+
Test Runner Finished
55+
PHPUnit Finished (Shell Exit Code: 0)

0 commit comments

Comments
 (0)