Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00%
0 / 1
0.00%
0 / 2
CRAP
0.00%
0 / 83
Runner
0.00%
0 / 1
0.00%
0 / 2
650
0.00%
0 / 83
 getPrinter()
0.00%
0 / 1
2
0.00%
0 / 3
 doEnhancedRun(\PHPUnit_Framework_Test $suite, \PHPUnit_Framework_TestResult $result, array $arguments = array()
0.00%
0 / 1
600
0.00%
0 / 80
<?php
namespace Codeception\PHPUnit;
class Runner extends \PHPUnit_TextUI_TestRunner {
public static $persistentListeners = array();
protected $defaultListeners = array('xml' => false, 'html' => false, 'tap' => false, 'json' => false);
/**
* @return null|\PHPUnit_TextUI_ResultPrinter
*/
public function getPrinter() {
return $this->printer;
}
public function doEnhancedRun(\PHPUnit_Framework_Test $suite, \PHPUnit_Framework_TestResult $result, array $arguments = array())
{
$this->handleConfiguration($arguments);
if (is_integer($arguments['repeat'])) {
$suite = new \PHPUnit_Extensions_RepeatedTest(
$suite,
$arguments['repeat'],
$arguments['filter'],
$arguments['groups'],
$arguments['excludeGroups'],
$arguments['processIsolation']
);
}
$result->convertErrorsToExceptions(FALSE);
if (!$arguments['convertNoticesToExceptions']) {
\PHPUnit_Framework_Error_Notice::$enabled = FALSE;
}
if (!$arguments['convertWarningsToExceptions']) {
\PHPUnit_Framework_Error_Warning::$enabled = FALSE;
}
if ($arguments['stopOnError']) {
$result->stopOnError(TRUE);
}
if ($arguments['stopOnFailure']) {
$result->stopOnFailure(TRUE);
}
if ($arguments['stopOnIncomplete']) {
$result->stopOnIncomplete(TRUE);
}
if ($arguments['stopOnSkipped']) {
$result->stopOnSkipped(TRUE);
}
if ($this->printer === NULL) {
if (isset($arguments['printer']) &&
$arguments['printer'] instanceof \PHPUnit_Util_Printer) {
$this->printer = $arguments['printer'];
} else {
$this->printer = new \Codeception\PHPUnit\ResultPrinter\UI(
NULL,
$arguments['verbose'],
$arguments['colors'],
$arguments['debug']
);
}
}
if (isset($arguments['report'])) {
if ($arguments['report']) $this->printer = new \Codeception\PHPUnit\ResultPrinter\Report();
}
if (empty(self::$persistentListeners)) {
foreach ($this->defaultListeners as $listener => $value) {
if (!isset($arguments[$listener])) $arguments[$listener] = $value;
}
if ($arguments['html']) self::$persistentListeners[] = new \Codeception\PHPUnit\ResultPrinter\HTML(\Codeception\Configuration::logDir() . 'report.html');
if ($arguments['xml']) self::$persistentListeners[] = new \Codeception\PHPUnit\Log\JUnit(\Codeception\Configuration::logDir() . 'report.xml', false);
if ($arguments['tap']) self::$persistentListeners[] = new \PHPUnit_Util_Log_TAP(\Codeception\Configuration::logDir() . 'report.tap.log');
if ($arguments['json']) self::$persistentListeners[] = new \PHPUnit_Util_Log_JSON(\Codeception\Configuration::logDir() . 'report.json');
foreach (self::$persistentListeners as $listener) {
$result->addListener($listener);
}
}
$arguments['listeners'][] = $this->printer;
// clean up listeners between suites
foreach ($arguments['listeners'] as $listener) {
$result->addListener($listener);
}
if ($arguments['strict']) {
$result->strictMode(TRUE);
}
$suite->run(
$result,
$arguments['filter'],
$arguments['groups'],
$arguments['excludeGroups'],
$arguments['processIsolation']
);
unset($suite);
foreach ($arguments['listeners'] as $listener) {
$result->removeListener($listener);
}
return $result;
}
}