17 define(
'INDEX_FILE_LOCATION', dirname(dirname(dirname(dirname(__FILE__)))) .
'/index.php');
18 require_once(dirname(dirname(__FILE__)) .
'/classes/cliTool/CliTool.inc.php');
32 parent::__construct(
$argv);
36 $wrongArgCount = (count($this->argv) < 2 ? true :
false);
37 if ($wrongArgCount ||
$argv[0] ==
'-h') {
40 printf(PHP_EOL .
'Wrong number of arguments!' . PHP_EOL);
48 $this->script = array_shift(
$argv);
49 $this->target = array_shift(
$argv);
50 if (!is_dir($this->target)) {
51 echo
"Target directory $this->target dosn't exist" . PHP_EOL;
54 if (!is_writable($this->target)) {
55 echo
"Target directory $this->target is not writable" . PHP_EOL;
58 $this->coverageFiles =
$argv;
59 foreach ($this->coverageFiles as $file) {
60 if (!is_readable($file)) {
61 echo
"Coverage file $file is not readable" . PHP_EOL;
67 if (!($this->phpunit = exec(
'which phpunit') and is_readable($this->phpunit))) {
68 echo
'Couldn\'t find phpunit in $PATH' . PHP_EOL;
77 echo
'Merges two or more phpunit coverage report files into one.' . PHP_EOL
78 .
"Usage: {$this->scriptName} [target_directory] [coverage_report1] [coverage_report2] ..." . PHP_EOL;
87 require $this->phpunit;
91 echo
'Merging code coverage reports' . PHP_EOL;
92 foreach ($this->coverageFiles as $file) {
93 if (!is_readable($file)) {
94 echo
"Code coverage file $file dosn't exist" . PHP_EOL;
97 echo
'Merging ' . $file .
'...' . PHP_EOL;
102 if (isset($codeCoverage)) {
103 $codeCoverage->filter()->addFilesToWhitelist($coverage->filter()->getWhitelist());
104 $codeCoverage->merge($coverage);
106 $codeCoverage = $coverage;
111 if (isset($codeCoverage)) {
112 echo
'Generating HTML coverage report' . PHP_EOL;
113 $writer =
new PHP_CodeCoverage_Report_HTML();
114 $writer->process($codeCoverage, $this->target);
115 echo
'Finished merging coverage reports' . PHP_EOL;