Skip to content

Commit 585fece

Browse files
authored
Merge pull request #11 from Roave/feature/#8-automatic-extension-registration
#8 Automatic registration of `CollectTestExecutionMemoryFootprints`
2 parents 0b25ae1 + 66aadb1 commit 585fece

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

README.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,6 @@ composer require --dev roave/no-leaks
1111

1212
## Usage
1313

14-
In your `phpunit.xml` configuration, add following section:
15-
16-
```xml
17-
<listeners>
18-
<listener class="Roave\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprints"/>
19-
</listeners>
20-
21-
<extensions>
22-
<extension class="Roave\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprints"/>
23-
</extensions>
24-
```
25-
26-
Then run:
27-
2814
```sh
2915
vendor/bin/roave-no-leaks
3016
```

bin/roave-no-leaks.php

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
namespace Roave\NoLeaks\CLI;
66

77
use PHPUnit\TextUI\Command;
8+
use PHPUnit\TextUI\TestRunner;
9+
use Roave\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprints;
810

911
(function () {
1012
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
@@ -13,7 +15,33 @@
1315
require_once __DIR__ . '/../../../autoload.php';
1416
}
1517

16-
$_SERVER['argv'][] = '--repeat=3';
18+
(new class extends Command
19+
{
20+
/** @var CollectTestExecutionMemoryFootprints */
21+
private $collector;
1722

18-
Command::main();
23+
public function __construct()
24+
{
25+
$this->collector = new CollectTestExecutionMemoryFootprints();
26+
}
27+
28+
protected function handleArguments(array $argv) : void
29+
{
30+
parent::handleArguments($argv);
31+
32+
$this->arguments['listeners'] = array_merge(
33+
$this->arguments['listeners'] ?? [],
34+
[$this->collector]
35+
);
36+
}
37+
38+
protected function createRunner() : TestRunner
39+
{
40+
$runner = parent::createRunner();
41+
42+
$runner->addExtension($this->collector);
43+
44+
return $runner;
45+
}
46+
})->run(array_merge($_SERVER['argv'], ['--repeat=3']), true);
1947
})();

test/e2e/phpunit-mock-suite.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@
1111
beStrictAboutTodoAnnotatedTests="true"
1212
verbose="true"
1313
>
14-
<listeners>
15-
<listener class="Roave\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprints"/>
16-
</listeners>
17-
18-
<extensions>
19-
<extension class="Roave\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprints"/>
20-
</extensions>
21-
2214
<testsuites>
2315
<testsuite name="Memleak detection e2e tests">
2416
<file>./LeakyIntegrationTest.php</file>

0 commit comments

Comments
 (0)