pictcode / lib / Cake / TestSuite / Coverage / TextCoverageReport.php @ 635eef61
履歴 | 表示 | アノテート | ダウンロード (2.133 KB)
1 | 635eef61 | spyder1211 | <?php
|
---|---|---|---|
2 | /**
|
||
3 | * Generates code coverage reports in Simple plain text from data obtained from PHPUnit
|
||
4 | *
|
||
5 | * PHP5
|
||
6 | *
|
||
7 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
|
||
8 | * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||
9 | *
|
||
10 | * Licensed under The MIT License
|
||
11 | * For full copyright and license information, please see the LICENSE.txt
|
||
12 | * Redistributions of files must retain the above copyright notice.
|
||
13 | *
|
||
14 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||
15 | * @link http://cakephp.org CakePHP(tm) Project
|
||
16 | * @package Cake.TestSuite.Coverage
|
||
17 | * @since CakePHP(tm) v 2.0
|
||
18 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||
19 | */
|
||
20 | |||
21 | App::uses('BaseCoverageReport', 'TestSuite/Coverage'); |
||
22 | |||
23 | /**
|
||
24 | * Generates code coverage reports in Simple plain text from data obtained from PHPUnit
|
||
25 | *
|
||
26 | * @package Cake.TestSuite.Coverage
|
||
27 | */
|
||
28 | class TextCoverageReport extends BaseCoverageReport { |
||
29 | |||
30 | /**
|
||
31 | * Generates report text to display.
|
||
32 | *
|
||
33 | * @return string compiled plain text report.
|
||
34 | */
|
||
35 | public function report() { |
||
36 | $pathFilter = $this->getPathFilter(); |
||
37 | $coverageData = $this->filterCoverageDataByPath($pathFilter); |
||
38 | if (empty($coverageData)) { |
||
39 | return 'No files to generate coverage for'; |
||
40 | } |
||
41 | $output = "\nCoverage Report:\n\n"; |
||
42 | foreach ($coverageData as $file => $coverageData) { |
||
43 | $fileData = file($file); |
||
44 | $output .= $this->generateDiff($file, $fileData, $coverageData); |
||
45 | } |
||
46 | return $output; |
||
47 | } |
||
48 | |||
49 | /**
|
||
50 | * Generates a 'diff' report for a file.
|
||
51 | * Since diffs are too big for plain text reports a simple file => % covered is done.
|
||
52 | *
|
||
53 | * @param string $filename Name of the file having coverage generated
|
||
54 | * @param array $fileLines File data as an array. See file() for how to get one of these.
|
||
55 | * @param array $coverageData Array of coverage data to use to generate HTML diffs with
|
||
56 | * @return string
|
||
57 | */
|
||
58 | public function generateDiff($filename, $fileLines, $coverageData) { |
||
59 | list($covered, $total) = $this->_calculateCoveredLines($fileLines, $coverageData); |
||
60 | $percentCovered = round(100 * $covered / $total, 2); |
||
61 | return "$filename : $percentCovered%\n"; |
||
62 | } |
||
63 | |||
64 | } |