public function testSave() { $suite = TestSuite::create('myname "', '/foo/bar.php', 'foo.bar', 'foo.bar'); $testcase = TestCase::create('myname "', 2, 0.345, 'stdClass', '/foo/bar.php', 12); $testcase->setError(new TestError('my "type', "</error> message ]]>")); $suite->addTestCase($testcase); $suite->addTestCase(TestCase::create('foobar', 2, 0.345, 'stdClass', '/foo/bar.php', 25)); $write = new JUnitWriter(); $write->save($suite, $resource = tmpfile()); fseek($resource, 0); $contents = fread($resource, 4096); fclose($resource); $xml = new \SimpleXMLElement($contents); $this->assertEquals(2, count($xml->xpath('//testcase'))); }
/** * {@inheritdoc} */ public function execute(InputInterface $input, OutputInterface $output) { if (!is_dir($input->getArgument('folder'))) { throw new \RuntimeException(sprintf('The folder %s is not writable', $input->getArgument('folder'))); } if (is_file($input->getArgument('target'))) { unlink($input->getArgument('target')); } $f = Finder::create()->ignoreVCS(true)->in($input->getArgument('folder'))->name('*.xml'); $output->writeln(sprintf("Merging TestSuite from %s", $input->getArgument('folder'))); $merger = new JUnitMerger(); $testsuite = $merger->merge($f->getIterator()); $output->writeln(sprintf("Saving TestSuite to %s", $input->getArgument('target'))); $writer = new JUnitWriter(); $writer->save($testsuite, $input->getArgument('target')); $output->writeln("Done!"); }