Skip to content

Commit 9ef56f7

Browse files
Merge branch '11.4' into 11.5
2 parents 32d804b + b0b5137 commit 9ef56f7

File tree

5 files changed

+144
-2
lines changed

5 files changed

+144
-2
lines changed

src/Framework/TestRunner/templates/class.tpl

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php declare(strict_types=1);
22
use PHPUnit\Event\Facade;
33
use PHPUnit\Runner\CodeCoverage;
4+
use PHPUnit\Runner\ErrorHandler;
45
use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry;
56
use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry;
67
use PHPUnit\TextUI\Configuration\PhpHandler;
@@ -41,11 +42,33 @@ function __phpunit_run_isolated_test()
4142

4243
require_once '{filename}';
4344

45+
$configuration = ConfigurationRegistry::get();
46+
4447
if ({collectCodeCoverageInformation}) {
45-
CodeCoverage::instance()->init(ConfigurationRegistry::get(), CodeCoverageFilterRegistry::instance(), true);
48+
CodeCoverage::instance()->init($configuration, CodeCoverageFilterRegistry::instance(), true);
4649
CodeCoverage::instance()->ignoreLines({linesToBeIgnored});
4750
}
4851

52+
$deprecationTriggers = [
53+
'functions' => [],
54+
'methods' => [],
55+
];
56+
57+
foreach ($configuration->source()->deprecationTriggers()['functions'] as $function) {
58+
$deprecationTriggers['functions'][] = $function;
59+
}
60+
61+
foreach ($configuration->source()->deprecationTriggers()['methods'] as $method) {
62+
[$className, $methodName] = explode('::', $method);
63+
64+
$deprecationTriggers['methods'][] = [
65+
'className' => $className,
66+
'methodName' => $methodName,
67+
];
68+
}
69+
70+
ErrorHandler::instance()->useDeprecationTriggers($deprecationTriggers);
71+
4972
$test = new {className}('{name}');
5073

5174
$test->setData('{dataName}', unserialize('{data}'));

src/Framework/TestRunner/templates/method.tpl

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php declare(strict_types=1);
22
use PHPUnit\Event\Facade;
33
use PHPUnit\Runner\CodeCoverage;
4+
use PHPUnit\Runner\ErrorHandler;
45
use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry;
56
use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry;
67
use PHPUnit\TextUI\Configuration\PhpHandler;
@@ -41,11 +42,33 @@ function __phpunit_run_isolated_test()
4142

4243
require_once '{filename}';
4344

45+
$configuration = ConfigurationRegistry::get();
46+
4447
if ({collectCodeCoverageInformation}) {
45-
CodeCoverage::instance()->init(ConfigurationRegistry::get(), CodeCoverageFilterRegistry::instance(), true);
48+
CodeCoverage::instance()->init($configuration, CodeCoverageFilterRegistry::instance(), true);
4649
CodeCoverage::instance()->ignoreLines({linesToBeIgnored});
4750
}
4851

52+
$deprecationTriggers = [
53+
'functions' => [],
54+
'methods' => [],
55+
];
56+
57+
foreach ($configuration->source()->deprecationTriggers()['functions'] as $function) {
58+
$deprecationTriggers['functions'][] = $function;
59+
}
60+
61+
foreach ($configuration->source()->deprecationTriggers()['methods'] as $method) {
62+
[$className, $methodName] = explode('::', $method);
63+
64+
$deprecationTriggers['methods'][] = [
65+
'className' => $className,
66+
'methodName' => $methodName,
67+
];
68+
}
69+
70+
ErrorHandler::instance()->useDeprecationTriggers($deprecationTriggers);
71+
4972
$test = new {className}('{methodName}');
5073

5174
$test->setData('{dataName}', unserialize('{data}'));
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
cacheResult="false"
5+
processIsolation="true"
6+
>
7+
<testsuites>
8+
<testsuite name="default">
9+
<directory>tests</directory>
10+
</testsuite>
11+
</testsuites>
12+
13+
<source>
14+
<deprecationTrigger>
15+
<method>PHPUnit\TestFixture\DeprecationTrigger\Test::triggerDeprecation</method>
16+
<function>PHPUnit\TestFixture\DeprecationTrigger\triggerDeprecation</function>
17+
</deprecationTrigger>
18+
</source>
19+
</phpunit>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php declare(strict_types=1);
2+
/*
3+
* This file is part of PHPUnit.
4+
*
5+
* (c) Sebastian Bergmann <sebastian@phpunit.de>
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\DeprecationTrigger;
11+
12+
use const E_USER_DEPRECATED;
13+
use function trigger_error;
14+
use PHPUnit\Framework\TestCase;
15+
16+
final class Test extends TestCase
17+
{
18+
public static function triggerDeprecation(): void
19+
{
20+
trigger_error('deprecation triggered by method', E_USER_DEPRECATED);
21+
}
22+
23+
public function testDeprecation(): void
24+
{
25+
self::triggerDeprecation();
26+
triggerDeprecation();
27+
28+
$this->assertTrue(true);
29+
}
30+
}
31+
32+
function triggerDeprecation(): void
33+
{
34+
trigger_error('deprecation triggered by function', E_USER_DEPRECATED);
35+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
Configured deprecation triggers are filtered when displaying deprecation details in process isolation
3+
--FILE--
4+
<?php declare(strict_types=1);
5+
$_SERVER['argv'][] = '--do-not-cache-result';
6+
$_SERVER['argv'][] = '--configuration';
7+
$_SERVER['argv'][] = __DIR__ . '/_files/details-process-isolation/phpunit.xml';
8+
$_SERVER['argv'][] = '--display-deprecations';
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+
Configuration: %s
18+
19+
D 1 / 1 (100%)
20+
21+
Time: %s, Memory: %s
22+
23+
1 test triggered 2 deprecations:
24+
25+
1) %sTest.php:25
26+
deprecation triggered by method
27+
28+
Triggered by:
29+
30+
* PHPUnit\TestFixture\DeprecationTrigger\Test::testDeprecation
31+
%sTest.php:23
32+
33+
2) %sTest.php:26
34+
deprecation triggered by function
35+
36+
Triggered by:
37+
38+
* PHPUnit\TestFixture\DeprecationTrigger\Test::testDeprecation
39+
%sTest.php:23
40+
41+
OK, but there were issues!
42+
Tests: 1, Assertions: 1, Deprecations: 2.

0 commit comments

Comments
 (0)