ae8bd6d3f02647286d56636a3e6598591ba4a8ad
2 namespace Civi\CiUtil\Command
;
7 * @package Civi\CiUtil\Command
13 public static function main($argv) {
14 if (empty($argv[1])) {
15 echo "summary: Compares the output of different test runs\n";
16 echo "usage: phpunit-compare [--out=txt|csv] [--phpunit-json|--jenkins-xml] <file1> <file2>...\n";
20 $parser = array('\Civi\CiUtil\PHPUnitParser', 'parseJsonResults');
22 $suites = array(); // array('file' => string, 'results' => array)
23 for ($i = 1; $i < count($argv); $i++
) {
25 case '--phpunit-json':
26 $parser = array('\Civi\CiUtil\PHPUnitParser', 'parseJsonResults');
30 $parser = array('\Civi\CiUtil\JenkinsParser', 'parseXmlResults');
34 $parser = array('\Civi\CiUtil\CSVParser', 'parseResults');
48 'results' => call_user_func($parser, file_get_contents($argv[$i])),
53 $tests = array(); // array(string $name)
54 foreach ($suites as $suite) {
55 $tests = array_unique(array_merge(
57 array_keys($suite['results'])
62 if ($printerType == 'csv') {
63 $printer = new \Civi\CiUtil\
CsvPrinter('php://stdout', \Civi\CiUtil\Arrays
::collect($suites, 'file'));
66 $printer = new \Civi\CiUtil\
ComparisonPrinter(\Civi\CiUtil\Arrays
::collect($suites, 'file'));
68 foreach ($tests as $test) {
70 foreach ($suites as $suite) {
71 $values[] = isset($suite['results'][$test]) ?
$suite['results'][$test] : 'MISSING';
74 if (count(array_unique($values)) > 1) {
75 $printer->printRow($test, $values);