Skip to content

Commit dcb7825

Browse files
Add tests for --covers and --uses CLI options
1 parent ee39f21 commit dcb7825

File tree

6 files changed

+158
-0
lines changed

6 files changed

+158
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="../../../../phpunit.xsd"
4+
bootstrap="src/Foo.php">
5+
<testsuites>
6+
<testsuite name="default">
7+
<directory>tests</directory>
8+
</testsuite>
9+
</testsuites>
10+
</phpunit>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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\CoversUsesFiltering;
11+
12+
final class Foo
13+
{
14+
public function bar(): bool
15+
{
16+
return true;
17+
}
18+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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\CoversUsesFiltering;
11+
12+
use PHPUnit\Framework\Attributes\CoversClass;
13+
use PHPUnit\Framework\TestCase;
14+
15+
#[CoversClass(Foo::class)]
16+
final class CoversTest extends TestCase
17+
{
18+
public function testOne(): void
19+
{
20+
$this->assertTrue(true);
21+
}
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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\CoversUsesFiltering;
11+
12+
use PHPUnit\Framework\Attributes\UsesClass;
13+
use PHPUnit\Framework\TestCase;
14+
15+
#[UsesClass(Foo::class)]
16+
final class UsesTest extends TestCase
17+
{
18+
public function testOne(): void
19+
{
20+
$this->assertTrue(true);
21+
}
22+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--TEST--
2+
phpunit --covers PHPUnit\TestFixture\CoversUsesFiltering\Foo
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$traceFile = tempnam(sys_get_temp_dir(), __FILE__);
6+
7+
$_SERVER['argv'][] = '--do-not-cache-result';
8+
$_SERVER['argv'][] = '--no-configuration';
9+
$_SERVER['argv'][] = '--no-output';
10+
$_SERVER['argv'][] = '--log-events-text';
11+
$_SERVER['argv'][] = $traceFile;
12+
$_SERVER['argv'][] = '--covers';
13+
$_SERVER['argv'][] = \PHPUnit\TestFixture\CoversUsesFiltering\Foo::class;
14+
$_SERVER['argv'][] = __DIR__ . '/../../_files/covers-uses';
15+
16+
require_once __DIR__ . '/../../../bootstrap.php';
17+
18+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
19+
20+
print file_get_contents($traceFile);
21+
22+
unlink($traceFile);
23+
--EXPECTF--
24+
PHPUnit Started (PHPUnit %s using %s)
25+
Test Runner Configured
26+
Test Suite Loaded (2 tests)
27+
Event Facade Sealed
28+
Test Runner Started
29+
Test Suite Sorted
30+
Test Suite Filtered (1 test)
31+
Test Runner Execution Started (1 test)
32+
Test Suite Started (CLI Arguments, 1 test)
33+
Test Suite Started (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest, 1 test)
34+
Test Preparation Started (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest::testOne)
35+
Test Prepared (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest::testOne)
36+
Assertion Succeeded (Constraint: is true, Value: true)
37+
Test Passed (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest::testOne)
38+
Test Finished (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest::testOne)
39+
Test Suite Finished (PHPUnit\TestFixture\CoversUsesFiltering\CoversTest, 1 test)
40+
Test Suite Finished (CLI Arguments, 1 test)
41+
Test Runner Execution Finished
42+
Test Runner Finished
43+
PHPUnit Finished (Shell Exit Code: 0)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--TEST--
2+
phpunit --uses PHPUnit\TestFixture\CoversUsesFiltering\Foo
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$traceFile = tempnam(sys_get_temp_dir(), __FILE__);
6+
7+
$_SERVER['argv'][] = '--do-not-cache-result';
8+
$_SERVER['argv'][] = '--no-configuration';
9+
$_SERVER['argv'][] = '--no-output';
10+
$_SERVER['argv'][] = '--log-events-text';
11+
$_SERVER['argv'][] = $traceFile;
12+
$_SERVER['argv'][] = '--uses';
13+
$_SERVER['argv'][] = \PHPUnit\TestFixture\CoversUsesFiltering\Foo::class;
14+
$_SERVER['argv'][] = __DIR__ . '/../../_files/covers-uses';
15+
16+
require_once __DIR__ . '/../../../bootstrap.php';
17+
18+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
19+
20+
print file_get_contents($traceFile);
21+
22+
unlink($traceFile);
23+
--EXPECTF--
24+
PHPUnit Started (PHPUnit %s using %s)
25+
Test Runner Configured
26+
Test Suite Loaded (2 tests)
27+
Event Facade Sealed
28+
Test Runner Started
29+
Test Suite Sorted
30+
Test Suite Filtered (1 test)
31+
Test Runner Execution Started (1 test)
32+
Test Suite Started (CLI Arguments, 1 test)
33+
Test Suite Started (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest, 1 test)
34+
Test Preparation Started (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest::testOne)
35+
Test Prepared (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest::testOne)
36+
Assertion Succeeded (Constraint: is true, Value: true)
37+
Test Passed (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest::testOne)
38+
Test Finished (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest::testOne)
39+
Test Suite Finished (PHPUnit\TestFixture\CoversUsesFiltering\UsesTest, 1 test)
40+
Test Suite Finished (CLI Arguments, 1 test)
41+
Test Runner Execution Finished
42+
Test Runner Finished
43+
PHPUnit Finished (Shell Exit Code: 0)

0 commit comments

Comments
 (0)