1: <?php
2:
3: /**
4: * This file is part of the Nette Tester.
5: * Copyright (c) 2009 David Grudl (http://davidgrudl.com)
6: */
7:
8: namespace Tester\Runner\Output;
9:
10: use Tester,
11: Tester\Runner\Runner;
12:
13:
14: /**
15: * Test Anything Protocol, http://testanything.org
16: *
17: * @author David Grudl
18: */
19: class TapPrinter implements Tester\Runner\OutputHandler
20: {
21: /** @var Runner */
22: private $runner;
23:
24:
25: public function __construct(Runner $runner)
26: {
27: $this->runner = $runner;
28: }
29:
30:
31: public function begin()
32: {
33: echo "TAP version 13\n";
34: }
35:
36:
37: public function result($testName, $result, $message)
38: {
39: $message = trim($message);
40: $outputs = array(
41: Runner::PASSED => "ok $testName",
42: Runner::SKIPPED => "ok $testName #skip $message",
43: Runner::FAILED => "not ok $testName" . str_replace("\n", "\n# ", "\n" . $message),
44: );
45: echo $outputs[$result] . "\n";
46: }
47:
48:
49: public function end()
50: {
51: echo '1..' . array_sum($this->runner->getResults());
52: }
53:
54: }
55: