Skip to content

Commit 5e87574

Browse files
committed
HTML report
1 parent 482cb3f commit 5e87574

File tree

14 files changed

+253
-8
lines changed

14 files changed

+253
-8
lines changed

src/CodeCoverage/Report/HTML/Renderer.php

+20
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,22 @@ protected function renderItemTemplate(Text_Template $template, array $data)
124124
$data['linesExecutedPercentAsString'] = '100.00%';
125125
}
126126

127+
if ($data['numExecutablePaths'] > 0) {
128+
$pathsLevel = $this->getColorLevel($data['pathsExecutedPercent']);
129+
130+
$pathsNumber = $data['numExecutedPaths'] . $numSeparator .
131+
$data['numExecutablePaths'];
132+
133+
$pathsBar = $this->getCoverageBar(
134+
$data['pathsExecutedPercent']
135+
);
136+
} else {
137+
$pathsLevel = 'success';
138+
$pathsNumber = '0' . $numSeparator . '0';
139+
$pathsBar = $this->getCoverageBar(100);
140+
$data['pathsExecutedPercentAsString'] = '100.00%';
141+
}
142+
127143
$template->setVar(
128144
[
129145
'icon' => isset($data['icon']) ? $data['icon'] : '',
@@ -133,6 +149,10 @@ protected function renderItemTemplate(Text_Template $template, array $data)
133149
'lines_executed_percent' => $data['linesExecutedPercentAsString'],
134150
'lines_level' => $linesLevel,
135151
'lines_number' => $linesNumber,
152+
'paths_bar' => $pathsBar,
153+
'paths_executed_percent' => $data['pathsExecutedPercentAsString'],
154+
'paths_level' => $pathsLevel,
155+
'paths_number' => $pathsNumber,
136156
'methods_bar' => $methodsBar,
137157
'methods_tested_percent' => $data['testedMethodsPercentAsString'],
138158
'methods_level' => $methodsLevel,

src/CodeCoverage/Report/HTML/Renderer/Directory.php

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = false
6161
'linesExecutedPercentAsString' => $item->getLineExecutedPercent(),
6262
'numExecutedLines' => $item->getNumExecutedLines(),
6363
'numExecutableLines' => $item->getNumExecutableLines(),
64+
'pathsExecutedPercent' => $item->getPathExecutedPercent(false),
65+
'pathsExecutedPercentAsString' => $item->getPathExecutedPercent(),
66+
'numExecutedPaths' => $item->getNumExecutedPaths(),
67+
'numExecutablePaths' => $item->getNumExecutablePaths(),
6468
'testedMethodsPercent' => $item->getTestedMethodsPercent(false),
6569
'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(),
6670
'testedClassesPercent' => $item->getTestedClassesAndTraitsPercent(false),

src/CodeCoverage/Report/HTML/Renderer/File.php

+28
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ protected function renderItems(PHP_CodeCoverage_Report_Node_File $node)
114114
'linesExecutedPercentAsString' => $node->getLineExecutedPercent(),
115115
'numExecutedLines' => $node->getNumExecutedLines(),
116116
'numExecutableLines' => $node->getNumExecutableLines(),
117+
'pathsExecutedPercent' => $node->getPathExecutedPercent(false),
118+
'pathsExecutedPercentAsString' => $node->getPathExecutedPercent(),
119+
'numExecutedPaths' => $node->getNumExecutedPaths(),
120+
'numExecutablePaths' => $node->getNumExecutablePaths(),
117121
'testedMethodsPercent' => $node->getTestedMethodsPercent(false),
118122
'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(),
119123
'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false),
@@ -186,6 +190,18 @@ protected function renderTraitOrClassItems(array $items, Text_Template $template
186190
),
187191
'numExecutedLines' => $item['executedLines'],
188192
'numExecutableLines' => $item['executableLines'],
193+
'pathsExecutedPercent' => PHP_CodeCoverage_Util::percent(
194+
$item['executedPaths'],
195+
$item['executablePaths'],
196+
false
197+
),
198+
'pathsExecutedPercentAsString' => PHP_CodeCoverage_Util::percent(
199+
$item['executedPaths'],
200+
$item['executablePaths'],
201+
true
202+
),
203+
'numExecutedPaths' => $item['executedPaths'],
204+
'numExecutablePaths' => $item['executablePaths'],
189205
'testedMethodsPercent' => PHP_CodeCoverage_Util::percent(
190206
$numTestedMethods,
191207
$numMethods,
@@ -277,6 +293,18 @@ protected function renderFunctionOrMethodItem(Text_Template $template, array $it
277293
),
278294
'numExecutedLines' => $item['executedLines'],
279295
'numExecutableLines' => $item['executableLines'],
296+
'pathsExecutedPercent' => PHP_CodeCoverage_Util::percent(
297+
$item['executedPaths'],
298+
$item['executablePaths'],
299+
false
300+
),
301+
'pathsExecutedPercentAsString' => PHP_CodeCoverage_Util::percent(
302+
$item['executedPaths'],
303+
$item['executablePaths'],
304+
true
305+
),
306+
'numExecutedPaths' => $item['executedPaths'],
307+
'numExecutablePaths' => $item['executablePaths'],
280308
'testedMethodsPercent' => PHP_CodeCoverage_Util::percent(
281309
$numTestedItems,
282310
1,

src/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@
2828
<thead>
2929
<tr>
3030
<td>&nbsp;</td>
31-
<td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td>
31+
<td colspan="12"><div align="center"><strong>Code Coverage</strong></div></td>
3232
</tr>
3333
<tr>
3434
<td>&nbsp;</td>
3535
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
36+
<td colspan="3"><div align="center"><strong>Paths</strong></div></td>
3637
<td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td>
3738
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
3839
</tr>

src/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<td class="{{lines_level}} big">{{lines_bar}}</td>
44
<td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
55
<td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>
6+
<td class="{{paths_level}} big">{{paths_bar}}</td>
7+
<td class="{{paths_level}} small"><div align="right">{{paths_executed_percent}}</div></td>
8+
<td class="{{paths_level}} small"><div align="right">{{paths_number}}</div></td>
69
<td class="{{methods_level}} big">{{methods_bar}}</td>
710
<td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
811
<td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>

src/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@
2828
<thead>
2929
<tr>
3030
<td>&nbsp;</td>
31-
<td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
31+
<td colspan="13"><div align="center"><strong>Code Coverage</strong></div></td>
3232
</tr>
3333
<tr>
3434
<td>&nbsp;</td>
3535
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
3636
<td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
37+
<td colspan="3"><div align="center"><strong>Paths</strong></div></td>
3738
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
3839
</tr>
3940
</thead>

src/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
<td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
88
<td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>
99
<td class="{{methods_level}} small">{{crap}}</td>
10+
<td class="{{paths_level}} big">{{paths_bar}}</td>
11+
<td class="{{paths_level}} small"><div align="right">{{paths_executed_percent}}</div></td>
12+
<td class="{{paths_level}} small"><div align="right">{{paths_number}}</div></td>
1013
<td class="{{lines_level}} big">{{lines_bar}}</td>
1114
<td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
1215
<td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>

src/CodeCoverage/Report/HTML/Renderer/Template/method_item.html.dist

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
55
<td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>
66
<td class="{{methods_level}} small">{{crap}}</td>
7+
<td class="{{paths_level}} big">{{paths_bar}}</td>
8+
<td class="{{paths_level}} small"><div align="right">{{paths_executed_percent}}</div></td>
9+
<td class="{{paths_level}} small"><div align="right">{{paths_number}}</div></td>
710
<td class="{{lines_level}} big">{{lines_bar}}</td>
811
<td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
912
<td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>

tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html

+50-1
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
<thead>
3131
<tr>
3232
<td>&nbsp;</td>
33-
<td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
33+
<td colspan="13"><div align="center"><strong>Code Coverage</strong></div></td>
3434
</tr>
3535
<tr>
3636
<td>&nbsp;</td>
3737
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
3838
<td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
39+
<td colspan="3"><div align="center"><strong>Paths</strong></div></td>
3940
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
4041
</tr>
4142
</thead>
@@ -59,6 +60,14 @@
5960
<td class="warning small"><div align="right">75.00%</div></td>
6061
<td class="warning small"><div align="right">3&nbsp;/&nbsp;4</div></td>
6162
<td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
63+
<td class="danger big"> <div class="progress">
64+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20.00" aria-valuemin="0" aria-valuemax="100" style="width: 20.00%">
65+
<span class="sr-only">20.00% covered (danger)</span>
66+
</div>
67+
</div>
68+
</td>
69+
<td class="danger small"><div align="right">20.00%</div></td>
70+
<td class="danger small"><div align="right">1&nbsp;/&nbsp;5</div></td>
6271
<td class="danger big"> <div class="progress">
6372
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
6473
<span class="sr-only">50.00% covered (danger)</span>
@@ -88,6 +97,14 @@
8897
<td class="warning small"><div align="right">75.00%</div></td>
8998
<td class="warning small"><div align="right">3&nbsp;/&nbsp;4</div></td>
9099
<td class="warning small">8.12</td>
100+
<td class="danger big"> <div class="progress">
101+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20.00" aria-valuemin="0" aria-valuemax="100" style="width: 20.00%">
102+
<span class="sr-only">20.00% covered (danger)</span>
103+
</div>
104+
</div>
105+
</td>
106+
<td class="danger small"><div align="right">20.00%</div></td>
107+
<td class="danger small"><div align="right">1&nbsp;/&nbsp;5</div></td>
91108
<td class="danger big"> <div class="progress">
92109
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
93110
<span class="sr-only">50.00% covered (danger)</span>
@@ -114,6 +131,14 @@
114131
<span class="sr-only">100.00% covered (success)</span>
115132
</div>
116133
</div>
134+
</td>
135+
<td class="success small"><div align="right">100.00%</div></td>
136+
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
137+
<td class="success big"> <div class="progress">
138+
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
139+
<span class="sr-only">100.00% covered (success)</span>
140+
</div>
141+
</div>
117142
</td>
118143
<td class="success small"><div align="right">100.00%</div></td>
119144
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
@@ -135,6 +160,14 @@
135160
<span class="sr-only">0.00% covered (danger)</span>
136161
</div>
137162
</div>
163+
</td>
164+
<td class="danger small"><div align="right">0.00%</div></td>
165+
<td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
166+
<td class="danger big"> <div class="progress">
167+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
168+
<span class="sr-only">0.00% covered (danger)</span>
169+
</div>
170+
</div>
138171
</td>
139172
<td class="danger small"><div align="right">0.00%</div></td>
140173
<td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
@@ -151,6 +184,14 @@
151184
<td class="success small"><div align="right">100.00%</div></td>
152185
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
153186
<td class="success small">1</td>
187+
<td class="danger big"> <div class="progress">
188+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
189+
<span class="sr-only">0.00% covered (danger)</span>
190+
</div>
191+
</div>
192+
</td>
193+
<td class="danger small"><div align="right">0.00%</div></td>
194+
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
154195
<td class="success big"> <div class="progress">
155196
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
156197
<span class="sr-only">100.00% covered (success)</span>
@@ -172,6 +213,14 @@
172213
<td class="success small"><div align="right">100.00%</div></td>
173214
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
174215
<td class="success small">1</td>
216+
<td class="danger big"> <div class="progress">
217+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
218+
<span class="sr-only">0.00% covered (danger)</span>
219+
</div>
220+
</div>
221+
</td>
222+
<td class="danger small"><div align="right">0.00%</div></td>
223+
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
175224
<td class="success big"> <div class="progress">
176225
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
177226
<span class="sr-only">100.00% covered (success)</span>

tests/_files/Report/HTML/CoverageForBankAccount/index.html

+18-1
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@
3030
<thead>
3131
<tr>
3232
<td>&nbsp;</td>
33-
<td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td>
33+
<td colspan="12"><div align="center"><strong>Code Coverage</strong></div></td>
3434
</tr>
3535
<tr>
3636
<td>&nbsp;</td>
3737
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
38+
<td colspan="3"><div align="center"><strong>Paths</strong></div></td>
3839
<td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td>
3940
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
4041
</tr>
@@ -50,6 +51,14 @@
5051
</td>
5152
<td class="danger small"><div align="right">50.00%</div></td>
5253
<td class="danger small"><div align="right">5&nbsp;/&nbsp;10</div></td>
54+
<td class="danger big"> <div class="progress">
55+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20.00" aria-valuemin="0" aria-valuemax="100" style="width: 20.00%">
56+
<span class="sr-only">20.00% covered (danger)</span>
57+
</div>
58+
</div>
59+
</td>
60+
<td class="danger small"><div align="right">20.00%</div></td>
61+
<td class="danger small"><div align="right">1&nbsp;/&nbsp;5</div></td>
5362
<td class="warning big"> <div class="progress">
5463
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
5564
<span class="sr-only">75.00% covered (warning)</span>
@@ -78,6 +87,14 @@
7887
</td>
7988
<td class="danger small"><div align="right">50.00%</div></td>
8089
<td class="danger small"><div align="right">5&nbsp;/&nbsp;10</div></td>
90+
<td class="danger big"> <div class="progress">
91+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20.00" aria-valuemin="0" aria-valuemax="100" style="width: 20.00%">
92+
<span class="sr-only">20.00% covered (danger)</span>
93+
</div>
94+
</div>
95+
</td>
96+
<td class="danger small"><div align="right">20.00%</div></td>
97+
<td class="danger small"><div align="right">1&nbsp;/&nbsp;5</div></td>
8198
<td class="warning big"> <div class="progress">
8299
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
83100
<span class="sr-only">75.00% covered (warning)</span>

tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html

+18-1
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@
3030
<thead>
3131
<tr>
3232
<td>&nbsp;</td>
33-
<td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td>
33+
<td colspan="12"><div align="center"><strong>Code Coverage</strong></div></td>
3434
</tr>
3535
<tr>
3636
<td>&nbsp;</td>
3737
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
38+
<td colspan="3"><div align="center"><strong>Paths</strong></div></td>
3839
<td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td>
3940
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
4041
</tr>
@@ -50,6 +51,14 @@
5051
</td>
5152
<td class="warning small"><div align="right">87.50%</div></td>
5253
<td class="warning small"><div align="right">7&nbsp;/&nbsp;8</div></td>
54+
<td class="danger big"> <div class="progress">
55+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
56+
<span class="sr-only">0.00% covered (danger)</span>
57+
</div>
58+
</div>
59+
</td>
60+
<td class="danger small"><div align="right">0.00%</div></td>
61+
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
5362
<td class="danger big"> <div class="progress">
5463
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
5564
<span class="sr-only">50.00% covered (danger)</span>
@@ -78,6 +87,14 @@
7887
</td>
7988
<td class="warning small"><div align="right">87.50%</div></td>
8089
<td class="warning small"><div align="right">7&nbsp;/&nbsp;8</div></td>
90+
<td class="danger big"> <div class="progress">
91+
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
92+
<span class="sr-only">0.00% covered (danger)</span>
93+
</div>
94+
</div>
95+
</td>
96+
<td class="danger small"><div align="right">0.00%</div></td>
97+
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
8198
<td class="danger big"> <div class="progress">
8299
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
83100
<span class="sr-only">50.00% covered (danger)</span>

0 commit comments

Comments
 (0)