Skip to content

Commit 3235ac0

Browse files
committed
Add support for crap4j coverage report
1 parent 1248850 commit 3235ac0

File tree

5 files changed

+37
-2
lines changed

5 files changed

+37
-2
lines changed

PHPUnit/TextUI/Command.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ class PHPUnit_TextUI_Command
8282
'coverage-clover=' => NULL,
8383
'coverage-php=' => NULL,
8484
'coverage-text==' => NULL,
85+
'coverage-crap4j=' => NULL,
8586
'debug' => NULL,
8687
'exclude-group=' => NULL,
8788
'filter=' => NULL,
@@ -268,7 +269,8 @@ protected function handleArguments(array $argv)
268269
case '--coverage-clover':
269270
case '--coverage-html':
270271
case '--coverage-php':
271-
case '--coverage-text': {
272+
case '--coverage-text':
273+
case '--coverage-crap4j': {
272274
if (!extension_loaded('tokenizer')) {
273275
$this->showExtensionNotLoadedMessage(
274276
'tokenizer', 'No code coverage will be generated.'
@@ -311,6 +313,11 @@ protected function handleArguments(array $argv)
311313
$this->arguments['coverageTextShowOnlySummary'] = FALSE;
312314
}
313315
break;
316+
317+
case '--coverage-crap4j': {
318+
$this->arguments['coverageCrap4J'] = $option[1];
319+
}
320+
break;
314321
}
315322
}
316323
break;
@@ -845,6 +852,7 @@ protected function showHelp()
845852
--coverage-php <file> Serialize PHP_CodeCoverage object to file.
846853
--coverage-text=<file> Generate code coverage report in text format.
847854
Default to writing to the standard output.
855+
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
848856
849857
--testdox-html <file> Write agile documentation in HTML format to file.
850858
--testdox-text <file> Write agile documentation in Text format to file.

PHPUnit/TextUI/TestRunner.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,10 @@ class_exists($arguments['printer'], FALSE)) {
310310
if (isset($arguments['coverageText'])) {
311311
$codeCoverageReports++;
312312
}
313+
314+
if (isset($arguments['coverageCrap4J'])) {
315+
$codeCoverageReports++;
316+
}
313317
}
314318

315319
if ($codeCoverageReports > 0) {
@@ -412,6 +416,20 @@ class_exists($arguments['printer'], FALSE)) {
412416
unset($writer);
413417
}
414418

419+
if (isset($arguments['coverageCrap4J'])) {
420+
$this->printer->write(
421+
"\nGenerating Crap4J report XML file ..."
422+
);
423+
424+
require_once 'PHP/CodeCoverage/Report/Crap4j.php';
425+
426+
$writer = new PHP_CodeCoverage_Report_Crap4j;
427+
$writer->process($codeCoverage, $arguments['coverageCrap4J']);
428+
429+
$this->printer->write(" done\n");
430+
unset($writer);
431+
}
432+
415433
if (isset($arguments['reportDirectory'])) {
416434
$this->printer->write(
417435
"\nGenerating code coverage report in HTML format ..."
@@ -740,6 +758,11 @@ protected function handleConfiguration(array &$arguments)
740758
}
741759
}
742760

761+
if (isset($loggingConfiguration['coverage-crap4j']) &&
762+
!isset($arguments['coverageCrap4J'])) {
763+
$arguments['coverageCrap4J'] = $loggingConfiguration['coverage-crap4j'];
764+
}
765+
743766
if (isset($loggingConfiguration['json']) &&
744767
!isset($arguments['jsonLogfile'])) {
745768
$arguments['jsonLogfile'] = $loggingConfiguration['json'];
@@ -779,7 +802,8 @@ protected function handleConfiguration(array &$arguments)
779802
if ((isset($arguments['coverageClover']) ||
780803
isset($arguments['reportDirectory']) ||
781804
isset($arguments['coveragePHP']) ||
782-
isset($arguments['coverageText'])) &&
805+
isset($arguments['coverageText'])) ||
806+
isset($arguments['coverageCrap4J']) &&
783807
extension_loaded('xdebug')) {
784808

785809
$filterConfiguration = $arguments['configuration']->getFilterConfiguration();

PHPUnit/Util/Configuration.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
* <log type="junit" target="/tmp/logfile.xml" logIncompleteSkipped="false"/>
140140
* <log type="testdox-html" target="/tmp/testdox.html"/>
141141
* <log type="testdox-text" target="/tmp/testdox.txt"/>
142+
* <log type="coverage-crap4j" target="/tmp/crap.xml"/>
142143
* </logging>
143144
*
144145
* <php>

Tests/TextUI/help.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Usage: phpunit [switches] UnitTest [UnitTest.php]
2424
--coverage-php <file> Serialize PHP_CodeCoverage object to file.
2525
--coverage-text=<file> Generate code coverage report in text format.
2626
Default to writing to the standard output.
27+
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
2728

2829
--testdox-html <file> Write agile documentation in HTML format to file.
2930
--testdox-text <file> Write agile documentation in Text format to file.

Tests/TextUI/help2.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Usage: phpunit [switches] UnitTest [UnitTest.php]
2525
--coverage-php <file> Serialize PHP_CodeCoverage object to file.
2626
--coverage-text=<file> Generate code coverage report in text format.
2727
Default to writing to the standard output.
28+
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
2829

2930
--testdox-html <file> Write agile documentation in HTML format to file.
3031
--testdox-text <file> Write agile documentation in Text format to file.

0 commit comments

Comments
 (0)