guard-phpunit 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +37 -0
- data/LICENSE +19 -19
- data/README.md +106 -106
- data/lib/guard/phpunit.rb +112 -112
- data/lib/guard/phpunit/formatter.rb +64 -64
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/PHPUnit/Extensions/Progress/ResultPrinter.php +498 -498
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/README.markdown +44 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/_files/Number.php +78 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/_files/NumberTest.php +99 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/_files/emptyTest.php +6 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_basic.phpt +22 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_errors.phpt +27 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_errors_variation.phpt +28 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_failing.phpt +31 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_failing_variation.phpt +32 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_incomplete.phpt +19 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_incomplete_variation.phpt +20 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_passing.phpt +19 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_passing_variation.phpt +20 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_skipped.phpt +19 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/Tests/printer_skipped_variation.phpt +20 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/phpunit.xml +4 -0
- data/lib/guard/phpunit/formatters/PHPUnit-Progress/screenshot.png +0 -0
- data/lib/guard/phpunit/inspector.rb +54 -54
- data/lib/guard/phpunit/notifier.rb +68 -68
- data/lib/guard/phpunit/runner.rb +197 -194
- data/lib/guard/phpunit/templates/Guardfile +3 -3
- data/lib/guard/phpunit/version.rb +6 -6
- metadata +37 -3
@@ -0,0 +1,44 @@
|
|
1
|
+
Progress results printer for PHPUnit
|
2
|
+
====================================
|
3
|
+
|
4
|
+
This PHPUnit extention makes the printed tests results look similar to
|
5
|
+
Rspec's default formatter called "progress".
|
6
|
+
|
7
|
+
The progress printer tries to focus on the tests results only; That's why
|
8
|
+
a lot of the info printed by the default PHPUnit printer was removed.
|
9
|
+
|
10
|
+
Test results have the same colors and spacing as the Rspec's results.
|
11
|
+
If you want to see how results look, check out the screenshot below!
|
12
|
+
|
13
|
+
|
14
|
+
Usage
|
15
|
+
-----
|
16
|
+
|
17
|
+
There is more than one way to use this printer with PHPUnit. Probably
|
18
|
+
the easiest way is to pass the the printer (with it's location) as
|
19
|
+
arguments to the `phpunit` command.
|
20
|
+
|
21
|
+
So clone this repo to someplace on your machine. Then copy the following
|
22
|
+
command and paste it to your terminal
|
23
|
+
(**Don't** forget to replace the things inside brackets)
|
24
|
+
|
25
|
+
phpunit --include-path [Path to your clone of this repo] \
|
26
|
+
--printer PHPUnit_Extensions_Progress_ResultPrinter \
|
27
|
+
--colors [Tests Path]
|
28
|
+
|
29
|
+
If you want to see a the skipped and incomplete tests too in the results,
|
30
|
+
you can add the `--verbose` argument the the command above.
|
31
|
+
|
32
|
+
Another way is to use a `phpunit.xml` file and pass its location as an argument.
|
33
|
+
If you are intrested in this way, I would recommend that you read [PHPUnit's
|
34
|
+
docs][docs].
|
35
|
+
|
36
|
+
|
37
|
+
Screenshot
|
38
|
+
----------
|
39
|
+
|
40
|
+
Here is how the results of this extention look using the progress printer:
|
41
|
+
![Progress printer results in the terminal][shot]
|
42
|
+
|
43
|
+
[docs]:http://www.phpunit.de/manual/current/en/index.html
|
44
|
+
[shot]:https://github.com/Maher4Ever/phpunit-progress/raw/master/screenshot.png
|
@@ -0,0 +1,78 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
/**
|
4
|
+
* A generic number class
|
5
|
+
*/
|
6
|
+
class Number {
|
7
|
+
|
8
|
+
/**
|
9
|
+
* The number
|
10
|
+
*
|
11
|
+
* @var integer
|
12
|
+
*/
|
13
|
+
protected $number;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* The constructor
|
17
|
+
*
|
18
|
+
* @param integer $num
|
19
|
+
*/
|
20
|
+
public function __construct($num) {
|
21
|
+
$this->number = $num;
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Adds a number.
|
26
|
+
*
|
27
|
+
* @param integer $num
|
28
|
+
*/
|
29
|
+
public function add($num) {
|
30
|
+
$this->number += $num;
|
31
|
+
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Substracts a number.
|
35
|
+
*
|
36
|
+
* @param integer $num
|
37
|
+
*/
|
38
|
+
public function substract($num) {
|
39
|
+
$this->number -= $num;
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Multiplies by number.
|
44
|
+
*
|
45
|
+
* @param integer $num
|
46
|
+
*/
|
47
|
+
public function multiplyBy($num) {
|
48
|
+
$this->number *= $num;
|
49
|
+
}
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Divides by number.
|
53
|
+
*
|
54
|
+
* @param integer $num
|
55
|
+
* @throws NumberException
|
56
|
+
*/
|
57
|
+
public function divideBy($num) {
|
58
|
+
if ( $num !== 0 ) {
|
59
|
+
$this->number /= $num;
|
60
|
+
} else {
|
61
|
+
throw new NumberException('Division by zero!');
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
/*
|
66
|
+
* Returns the number.
|
67
|
+
*
|
68
|
+
* @return integer
|
69
|
+
*/
|
70
|
+
public function get() {
|
71
|
+
return $this->number;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Number exceptions class.
|
77
|
+
*/
|
78
|
+
class NumberException extends RuntimeException {}
|
@@ -0,0 +1,99 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
require_once 'Number.php';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Tests for the number class.
|
7
|
+
*/
|
8
|
+
class NumberTest extends PHPUnit_Framework_TestCase {
|
9
|
+
|
10
|
+
protected $number;
|
11
|
+
|
12
|
+
public function setUp()
|
13
|
+
{
|
14
|
+
$this->number = new Number(0);
|
15
|
+
}
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @covers Number::add
|
19
|
+
* @group passing
|
20
|
+
*/
|
21
|
+
public function testAdditionWorks()
|
22
|
+
{
|
23
|
+
$this->number->add(1);
|
24
|
+
$this->assertSame($this->number->get(), 1);
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @covers Number::substract
|
29
|
+
* @group passing
|
30
|
+
*/
|
31
|
+
public function testSubstractionWorks()
|
32
|
+
{
|
33
|
+
$this->number->substract(1);
|
34
|
+
$this->assertSame($this->number->get(), -1);
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @covers Number::multiplyBy
|
39
|
+
* @group skipped
|
40
|
+
*/
|
41
|
+
public function testMultiplicationWorks()
|
42
|
+
{
|
43
|
+
$this->markTestSkipped();
|
44
|
+
}
|
45
|
+
|
46
|
+
/**
|
47
|
+
* @covers Number::divideBy
|
48
|
+
* @group skipped
|
49
|
+
*/
|
50
|
+
public function testDivisionWorks()
|
51
|
+
{
|
52
|
+
$this->markTestSkipped('Division is hard!');
|
53
|
+
}
|
54
|
+
|
55
|
+
/**
|
56
|
+
* @covers Number::add
|
57
|
+
* @group failing
|
58
|
+
*/
|
59
|
+
public function testThatMyMathTeacherSucked()
|
60
|
+
{
|
61
|
+
$this->number->add(1);
|
62
|
+
$this->assertSame($this->number->get(), 10);
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
* @covers Number::substract
|
67
|
+
* @group failing
|
68
|
+
*/
|
69
|
+
public function testThatMyMathTeacherSuckedEvenMore()
|
70
|
+
{
|
71
|
+
$this->number->substract(1);
|
72
|
+
$this->assertSame($this->number->get(), "I don't know!");
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* @covers Number::divideBy
|
77
|
+
* @group errors
|
78
|
+
*/
|
79
|
+
public function testMathStillWorks()
|
80
|
+
{
|
81
|
+
$this->number->divideBy(0);
|
82
|
+
$this->assertSame($this->number->get(), 0);
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* @covers Number::add
|
87
|
+
* @covers Number::substract
|
88
|
+
* @covers Number::multiplyBy
|
89
|
+
* @covers Number::divideBy
|
90
|
+
* @group incomplete
|
91
|
+
*/
|
92
|
+
public function testArithmeticMethodsOnlyAcceptIntegers()
|
93
|
+
{
|
94
|
+
$this->markTestIncomplete(
|
95
|
+
'This test has not been implemented yet.'
|
96
|
+
);
|
97
|
+
}
|
98
|
+
|
99
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit empryTest - An empty test
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$testClass = 'emptyTest';
|
6
|
+
|
7
|
+
$_SERVER['argv'][1] = dirname(__FILE__) . "/_files/${testClass}.php";
|
8
|
+
|
9
|
+
require_once 'PHPUnit/Autoload.php';
|
10
|
+
PHPUnit_TextUI_Command::main();
|
11
|
+
?>
|
12
|
+
--EXPECTF--
|
13
|
+
%rF+%r
|
14
|
+
|
15
|
+
Failures:
|
16
|
+
|
17
|
+
1) Warning
|
18
|
+
No tests found in class "emptyTest".
|
19
|
+
# %s:%i
|
20
|
+
|
21
|
+
Finished in %i second%S
|
22
|
+
1 test, 0 assertions, 1 failures
|
@@ -0,0 +1,27 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only tests with errors
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'errors';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = dirname(__FILE__) . "/_files/${testClass}.php";
|
11
|
+
|
12
|
+
require_once 'PHPUnit/Autoload.php';
|
13
|
+
PHPUnit_TextUI_Command::main();
|
14
|
+
?>
|
15
|
+
--EXPECTF--
|
16
|
+
%rE+%r
|
17
|
+
|
18
|
+
Errors:
|
19
|
+
|
20
|
+
1) NumberTest::testMathStillWorks
|
21
|
+
NumberException: Division by zero!
|
22
|
+
# %s:%i
|
23
|
+
# %s:%i
|
24
|
+
# %s:%i
|
25
|
+
|
26
|
+
Finished in %i second%S
|
27
|
+
%i test, 0 assertions, %i errors
|
@@ -0,0 +1,28 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only tests with errors and colors enabled
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'errors';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = '--colors';
|
11
|
+
$_SERVER['argv'][4] = dirname(__FILE__) . "/_files/${testClass}.php";
|
12
|
+
|
13
|
+
require_once 'PHPUnit/Autoload.php';
|
14
|
+
PHPUnit_TextUI_Command::main();
|
15
|
+
?>
|
16
|
+
--EXPECTF--
|
17
|
+
%r(.+31.+E.+)+%r
|
18
|
+
|
19
|
+
Errors:
|
20
|
+
|
21
|
+
1) NumberTest::testMathStillWorks[31m
|
22
|
+
NumberException: Division by zero![0m[36m
|
23
|
+
# %s:%i
|
24
|
+
# %s:%i
|
25
|
+
# %s:%i[0m
|
26
|
+
|
27
|
+
Finished in %i second%S
|
28
|
+
[31m%i test, 0 assertions, %i errors[0m
|
@@ -0,0 +1,31 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only failing tests
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'failing';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = dirname(__FILE__) . "/_files/${testClass}.php";
|
11
|
+
|
12
|
+
require_once 'PHPUnit/Autoload.php';
|
13
|
+
PHPUnit_TextUI_Command::main();
|
14
|
+
?>
|
15
|
+
--EXPECTF--
|
16
|
+
%rF+%r
|
17
|
+
|
18
|
+
Failures:
|
19
|
+
|
20
|
+
1) NumberTest::testThatMyMathTeacherSucked
|
21
|
+
Failed asserting that 10 is identical to 1.
|
22
|
+
# %s:%i
|
23
|
+
# %s:%i
|
24
|
+
|
25
|
+
2) NumberTest::testThatMyMathTeacherSuckedEvenMore
|
26
|
+
Failed asserting that 'I don't know!' is identical to -1.
|
27
|
+
# %s:%i
|
28
|
+
# %s:%i
|
29
|
+
|
30
|
+
Finished in %i second%S
|
31
|
+
2 tests, 2 assertions, 2 failures
|
@@ -0,0 +1,32 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only failing tests and colors enabled
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'failing';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = '--colors';
|
11
|
+
$_SERVER['argv'][4] = dirname(__FILE__) . "/_files/${testClass}.php";
|
12
|
+
|
13
|
+
require_once 'PHPUnit/Autoload.php';
|
14
|
+
PHPUnit_TextUI_Command::main();
|
15
|
+
?>
|
16
|
+
--EXPECTF--
|
17
|
+
[31mF[0m[31mF[0m
|
18
|
+
|
19
|
+
Failures:
|
20
|
+
|
21
|
+
1) NumberTest::testThatMyMathTeacherSucked[31m
|
22
|
+
Failed asserting that 10 is identical to 1.[0m[36m
|
23
|
+
# %s:%i
|
24
|
+
# %s:%i[0m
|
25
|
+
|
26
|
+
2) NumberTest::testThatMyMathTeacherSuckedEvenMore[31m
|
27
|
+
Failed asserting that 'I don't know!' is identical to -1.[0m[36m
|
28
|
+
# %s:%i
|
29
|
+
# %s:%i[0m
|
30
|
+
|
31
|
+
Finished in %i second%S
|
32
|
+
[31m2 tests, 2 assertions, 2 failures[0m
|
@@ -0,0 +1,19 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only incomplete tests
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'incomplete';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = dirname(__FILE__) . "/_files/${testClass}.php";
|
11
|
+
|
12
|
+
require_once 'PHPUnit/Autoload.php';
|
13
|
+
PHPUnit_TextUI_Command::main();
|
14
|
+
?>
|
15
|
+
--EXPECTF--
|
16
|
+
%rI+%r
|
17
|
+
|
18
|
+
Finished in %i second%S
|
19
|
+
1 test, 0 assertions, 1 incomplete
|
@@ -0,0 +1,20 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only incomplete tests and colors enabled
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'incomplete';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = '--colors';
|
11
|
+
$_SERVER['argv'][4] = dirname(__FILE__) . "/_files/${testClass}.php";
|
12
|
+
|
13
|
+
require_once 'PHPUnit/Autoload.php';
|
14
|
+
PHPUnit_TextUI_Command::main();
|
15
|
+
?>
|
16
|
+
--EXPECTF--
|
17
|
+
[33mI[0m
|
18
|
+
|
19
|
+
Finished in %i second%S
|
20
|
+
[33m1 test, 0 assertions, 1 incomplete[0m
|
@@ -0,0 +1,19 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only passing tests
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'passing';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = dirname(__FILE__) . "/_files/${testClass}.php";
|
11
|
+
|
12
|
+
require_once 'PHPUnit/Autoload.php';
|
13
|
+
PHPUnit_TextUI_Command::main();
|
14
|
+
?>
|
15
|
+
--EXPECTF--
|
16
|
+
%r[.]+%r
|
17
|
+
|
18
|
+
Finished in %i second%S
|
19
|
+
%i tests, %i assertions
|
@@ -0,0 +1,20 @@
|
|
1
|
+
--TEST--
|
2
|
+
phpunit Number - Only passing tests and colors enabled
|
3
|
+
--FILE--
|
4
|
+
<?php
|
5
|
+
$group = 'passing';
|
6
|
+
$testClass = 'NumberTest';
|
7
|
+
|
8
|
+
$_SERVER['argv'][1] = '--group';
|
9
|
+
$_SERVER['argv'][2] = $group;
|
10
|
+
$_SERVER['argv'][3] = '--colors';
|
11
|
+
$_SERVER['argv'][4] = dirname(__FILE__) . "/_files/${testClass}.php";
|
12
|
+
|
13
|
+
require_once 'PHPUnit/Autoload.php';
|
14
|
+
PHPUnit_TextUI_Command::main();
|
15
|
+
?>
|
16
|
+
--EXPECTF--
|
17
|
+
[32m.[0m[32m.[0m
|
18
|
+
|
19
|
+
Finished in %i second%S
|
20
|
+
[32m2 tests, 2 assertions[0m
|