Skip to content

Commit e3d2f1c

Browse files
Closes #6246
1 parent a50a2c7 commit e3d2f1c

File tree

6 files changed

+46
-8
lines changed

6 files changed

+46
-8
lines changed

ChangeLog-12.3.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@ All notable changes of the PHPUnit 12.3 release series are documented in this fi
1818

1919
* [#6229](https://github.com/sebastianbergmann/phpunit/issues/6229): `Configuration::includeTestSuite()`, use `Configuration::includeTestSuites()` instead
2020
* [#6229](https://github.com/sebastianbergmann/phpunit/issues/6229): `Configuration::excludeTestSuite()`, use `Configuration::excludeTestSuites()` instead
21+
* [#6246](https://github.com/sebastianbergmann/phpunit/issues/6246): Using `#[CoversNothing]` on a test method
2122

2223
[12.3.0]: https://github.com/sebastianbergmann/phpunit/compare/12.2...main

DEPRECATIONS.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@ This functionality is currently [hard-deprecated](https://phpunit.de/backward-co
3131

3232
#### Assertions, Constraints, and Expectations
3333

34-
| Issue | Description | Since | Replacement |
35-
|-------------------------------------------------------------------|-----------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
36-
| [#6052](https://github.com/sebastianbergmann/phpunit/issues/6052) | `Assert::isType()` | 11.5.0 | Use `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNull()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, or `isString()` instead |
37-
| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertContainsOnly()` | 11.5.0 | Use `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, or `assertContainsOnlyString()` instead |
38-
| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertNotContainsOnly()` | 11.5.0 | Use `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, or `assertContainsNotOnlyString()` instead |
39-
| [#6059](https://github.com/sebastianbergmann/phpunit/issues/6059) | `Assert::containsOnly()` | 11.5.0 | Use `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, or `containsOnlyString()` instead |
34+
| Issue | Description | Since | Replacement |
35+
|-------------------------------------------------------------------|-------------------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
36+
| [#6052](https://github.com/sebastianbergmann/phpunit/issues/6052) | `Assert::isType()` | 11.5.0 | Use `isArray()`, `isBool()`, `isCallable()`, `isFloat()`, `isInt()`, `isIterable()`, `isNull()`, `isNumeric()`, `isObject()`, `isResource()`, `isClosedResource()`, `isScalar()`, or `isString()` instead |
37+
| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertContainsOnly()` | 11.5.0 | Use `assertContainsOnlyArray()`, `assertContainsOnlyBool()`, `assertContainsOnlyCallable()`, `assertContainsOnlyFloat()`, `assertContainsOnlyInt()`, `assertContainsOnlyIterable()`, `assertContainsOnlyNumeric()`, `assertContainsOnlyObject()`, `assertContainsOnlyResource()`, `assertContainsOnlyClosedResource()`, `assertContainsOnlyScalar()`, or `assertContainsOnlyString()` instead |
38+
| [#6055](https://github.com/sebastianbergmann/phpunit/issues/6055) | `Assert::assertNotContainsOnly()` | 11.5.0 | Use `assertContainsNotOnlyArray()`, `assertContainsNotOnlyBool()`, `assertContainsNotOnlyCallable()`, `assertContainsNotOnlyFloat()`, `assertContainsNotOnlyInt()`, `assertContainsNotOnlyIterable()`, `assertContainsNotOnlyNumeric()`, `assertContainsNotOnlyObject()`, `assertContainsNotOnlyResource()`, `assertContainsNotOnlyClosedResource()`, `assertContainsNotOnlyScalar()`, or `assertContainsNotOnlyString()` instead |
39+
| [#6059](https://github.com/sebastianbergmann/phpunit/issues/6059) | `Assert::containsOnly()` | 11.5.0 | Use `containsOnlyArray()`, `containsOnlyBool()`, `containsOnlyCallable()`, `containsOnlyFloat()`, `containsOnlyInt()`, `containsOnlyIterable()`, `containsOnlyNumeric()`, `containsOnlyObject()`, `containsOnlyResource()`, `containsOnlyClosedResource()`, `containsOnlyScalar()`, or `containsOnlyString()` instead |
40+
| [#6246](https://github.com/sebastianbergmann/phpunit/issues/6246) | Using `#[CoversNothing]` on a test method | 12.3.0 | |
4041

4142
### Running Tests
4243

src/Metadata/Api/CodeCoverage.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
namespace PHPUnit\Metadata\Api;
1111

1212
use function assert;
13+
use PHPUnit\Event\Facade as EventFacade;
1314
use PHPUnit\Framework\TestCase;
1415
use PHPUnit\Metadata\CoversClass;
1516
use PHPUnit\Metadata\CoversClassesThatExtendClass;
@@ -153,6 +154,11 @@ public function shouldCodeCoverageBeCollectedFor(TestCase $test): bool
153154
$parser = Registry::parser();
154155

155156
if ($parser->forMethod($className, $methodName)->isCoversNothing()->isNotEmpty()) {
157+
EventFacade::emitter()->testTriggeredPhpunitDeprecation(
158+
$test->valueObjectForEvents(),
159+
'Using #[CoversNothing] on a test method is deprecated, support for this will be removed in PHPUnit 13',
160+
);
161+
156162
return false;
157163
}
158164

tests/_files/CoversNothingOnMethodTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ public function testSomething(): void
2020
$o = new CoveredClass;
2121

2222
$o->publicMethod();
23+
24+
$this->assertTrue(true);
2325
}
2426
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
--TEST--
2+
phpunit ../_files/size-combinations/SmallMediumTest.php
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$_SERVER['argv'][] = '--do-not-cache-result';
6+
$_SERVER['argv'][] = '--no-configuration';
7+
$_SERVER['argv'][] = '--display-phpunit-deprecations';
8+
$_SERVER['argv'][] = __DIR__ . '/../../_files/CoversNothingOnMethodTest.php';
9+
10+
require __DIR__ . '/../../bootstrap.php';
11+
12+
(new PHPUnit\TextUI\Application)->run($_SERVER['argv']);
13+
--EXPECTF--
14+
PHPUnit %s by Sebastian Bergmann and contributors.
15+
16+
Runtime: %s
17+
18+
D 1 / 1 (100%)
19+
20+
Time: %s, Memory: %s
21+
22+
1 test triggered 1 PHPUnit deprecation:
23+
24+
1) PHPUnit\TestFixture\CoversNothingOnMethodTest::testSomething
25+
Using #[CoversNothing] on a test method is deprecated, support for this will be removed in PHPUnit 13
26+
27+
%sCoversNothingOnMethodTest.php:%d
28+
29+
OK, but there were issues!
30+
Tests: 1, Assertions: 1, PHPUnit Deprecations: 1.

tests/unit/Metadata/Api/CodeCoverageTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
use PHPUnit\Framework\TestCase;
1919
use PHPUnit\TestFixture\CoversClassOnClassTest;
2020
use PHPUnit\TestFixture\CoversNothingOnClassTest;
21-
use PHPUnit\TestFixture\CoversNothingOnMethodTest;
2221
use PHPUnit\TestFixture\Metadata\Attribute\CoversTest;
2322
use PHPUnit\TestFixture\Metadata\Attribute\UsesTest;
2423
use PHPUnit\TestFixture\NoCoverageAttributesTest;
@@ -44,7 +43,6 @@ public static function canSkipCoverageProvider(): array
4443
[false, NoCoverageAttributesTest::class],
4544
[false, CoversClassOnClassTest::class],
4645
[true, CoversNothingOnClassTest::class],
47-
[true, CoversNothingOnMethodTest::class],
4846
];
4947
}
5048

0 commit comments

Comments
 (0)