Skip to content

Commit d602927

Browse files
Nyholmdbu
authored andcommitted
Ensure compatibility with PHPUnit 5 and 6 (#25)
Select what result printer we should use
1 parent ed82f8d commit d602927

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

src/FeatureTestListener.php

+5-8
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22

33
namespace Http\Client\Tests;
44

5-
use PHPUnit\Framework\Test;
6-
use PHPUnit\TextUI\ResultPrinter;
7-
8-
class FeatureTestListener extends ResultPrinter
5+
trait FeatureTestListener
96
{
107
public function write($buffer)
118
{
129
}
1310

14-
public function startTest(Test $test)
11+
protected function doStartTest($test)
1512
{
1613
$feature = $this->extractFeature($test);
1714

@@ -24,7 +21,7 @@ public function startTest(Test $test)
2421
echo sprintf('%-40.s : ', $feature);
2522
}
2623

27-
public function endTest(Test $test, $time)
24+
protected function doEndTest($test, $time)
2825
{
2926
if (!$this->lastTestFailed) {
3027
echo $this->formatWithColor('fg-green', 'Supported')."\n";
@@ -35,10 +32,10 @@ public function endTest(Test $test, $time)
3532
$this->lastTestFailed = false;
3633
}
3734

38-
private function extractFeature(Test $test)
35+
private function extractFeature($test)
3936
{
4037
$class = get_class($test);
41-
$method = $test->getName();
38+
$method = $test->getName(false);
4239
$reflection = new \ReflectionMethod($class, $method);
4340

4441
return $this->parseDocBlock($reflection->getDocComment(), '@feature');

src/ResultPrinter.php

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace Http\Client\Tests;
4+
5+
use PHPUnit\Framework\Test;
6+
7+
// If PHPUnit 6
8+
if (class_exists('\\PHPUnit\\TextUI\\ResultPrinter')) {
9+
class ResultPrinter extends \PHPUnit\TextUI\ResultPrinter {
10+
use FeatureTestListener;
11+
public function startTest(Test $test)
12+
{
13+
return $this->doStartTest($test);
14+
}
15+
public function endTest(Test $test, $time)
16+
{
17+
return $this->doEndTest($test, $time);
18+
}
19+
}
20+
} else {
21+
class ResultPrinter extends \PHPUnit_TextUI_ResultPrinter {
22+
use FeatureTestListener;
23+
public function startTest(\PHPUnit_Framework_Test $test)
24+
{
25+
return $this->doStartTest($test);
26+
}
27+
public function endTest(\PHPUnit_Framework_Test $test, $time)
28+
{
29+
return $this->doEndTest($test, $time);
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)