/
Runner.stop-on-fail.phpt
93 lines (71 loc) 路 1.94 KB
/
Runner.stop-on-fail.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
use Tester\Assert;
use Tester\Runner\Runner;
use Tester\Runner\Test;
require __DIR__ . '/../bootstrap.php';
require __DIR__ . '/../../src/Runner/OutputHandler.php';
require __DIR__ . '/../../src/Runner/Test.php';
require __DIR__ . '/../../src/Runner/TestHandler.php';
require __DIR__ . '/../../src/Runner/Runner.php';
class Logger implements Tester\Runner\OutputHandler
{
public $results = [];
public function prepare(Test $test)
{
}
public function finish(Test $test)
{
$this->results[] = [$test->getResult(), basename($test->getFile())];
}
public function begin()
{
}
public function end()
{
}
}
$interpreter = createInterpreter();
// Normal stop on the end
test(function () use ($interpreter) {
$runner = new Runner($interpreter);
$runner->outputHandlers[] = $logger = new Logger;
$runner->paths = [
__DIR__ . '/stop-on-fail/init-fail.phptx',
__DIR__ . '/stop-on-fail/runtime-fail.phptx',
__DIR__ . '/stop-on-fail/pass.phptx',
];
Assert::notSame(0, $runner->run());
Assert::same([
[Test::FAILED, 'init-fail.phptx'],
[Test::FAILED, 'runtime-fail.phptx'],
[Test::PASSED, 'pass.phptx'],
], $logger->results);
});
// Stop in initial phase
test(function () use ($interpreter) {
$runner = new Runner($interpreter);
$runner->outputHandlers[] = $logger = new Logger;
$runner->stopOnFail = true;
$runner->paths = [
__DIR__ . '/stop-on-fail/init-fail.phptx',
__DIR__ . '/stop-on-fail/pass.phptx',
];
Assert::notSame(0, $runner->run());
Assert::same([
[Test::FAILED, 'init-fail.phptx'],
], $logger->results);
});
// Stop in run-time
test(function () use ($interpreter) {
$runner = new Runner($interpreter);
$runner->outputHandlers[] = $logger = new Logger;
$runner->stopOnFail = true;
$runner->paths = [
__DIR__ . '/stop-on-fail/runtime-fail.phptx',
__DIR__ . '/stop-on-fail/pass.phptx',
];
Assert::notSame(0, $runner->run());
Assert::same([
[Test::FAILED, 'runtime-fail.phptx'],
], $logger->results);
});