/** * Starts the Code Coverage. */ public static function start() { /** * Simpletest Code Coverage depends on xdebug. * * Ensure that the xdebug extension is loaded. */ if (false === extension_loaded('xdebug')) { die('Code Coverage needs Xdebug extension. Not loaded!'); } if (false === function_exists("xdebug_start_code_coverage")) { die('Code Coverage needs the method xdebug_start_code_coverage. Not found!'); } /** * Simpletest Code Coverage depends on sqlite. * * Ensure that the sqlite extension is loaded. */ if (false === class_exists('SQLiteDatabase')) { echo 'Code Coverage needs the php extension SQLITE. Not loaded!'; } /** * Setup Simpletest Code Coverage. */ require_once 'simpletest/extensions/coverage/coverage.php'; $coverage = new CodeCoverage(); $coverage->log = 'coverage.sqlite'; $coverage->root = TESTSUBJECT_DIR; $coverage->includes[] = '.*\\.php$'; $coverage->excludes[] = 'simpletest'; $coverage->excludes[] = 'tests'; $coverage->excludes[] = 'libraries'; $coverage->excludes[] = 'coverage-report'; $coverage->excludes[] = 'sweety'; $coverage->excludes[] = './.*.php'; $coverage->maxDirectoryDepth = 1; $coverage->resetLog(); $coverage->writeSettings(); /** * Finally: let's start the Code Coverage. */ $coverage->startCoverage(); #echo 'Code Coverage started...'; self::$coverage = $coverage; }
function testSettingsCanBeReadWrittenToDisk() { $settings_file = 'banana-boat-coverage-settings-test.dat'; $coverage = new CodeCoverage(); $coverage->log = '/banana/boat'; $coverage->settingsFile = $settings_file; $coverage->writeSettings(); $actual = new CodeCoverage(); $actual->settingsFile = $settings_file; $actual->readSettings(); $this->assertEqual('/banana/boat', $actual->log); }
/** * Initialize code coverage data collection, next step is to run your tests * with ini setting auto_prepend_file=autocoverage.php ... * * @package SimpleTest * @subpackage Extensions */ # optional arguments: # --include=<some filepath regexp> these files should be included coverage report # --exclude=<come filepath regexp> these files should not be included in coverage report # --maxdepth=2 when considering which file were not touched, scan directories # # Example: # php-coverage-open.php --include='.*\.php$' --include='.*\.inc$' --exclude='.*/tests/.*' /**#@+ * include coverage files */ require_once dirname(__FILE__) . '/../coverage_utils.php'; CoverageUtils::requireSqlite(); require_once dirname(__FILE__) . '/../coverage.php'; /**#@-*/ $cc = new CodeCoverage(); $cc->log = 'coverage.sqlite'; $args = CoverageUtils::parseArguments($_SERVER['argv'], TRUE); $cc->includes = CoverageUtils::issetOr($args['include[]'], array('.*\\.php$')); $cc->excludes = CoverageUtils::issetOr($args['exclude[]']); $cc->maxDirectoryDepth = (int) CoverageUtils::issetOr($args['maxdepth'], '1'); $cc->resetLog(); $cc->writeSettings();
public function testSettingsCanBeReadWrittenToDisk() { $settings_file = '0-coverage-settings-test.dat'; $coverage = new CodeCoverage(); $coverage->log = sys_get_temp_dir(); $coverage->settingsFile = $settings_file; $coverage->writeSettings(); $actual = new CodeCoverage(); $actual->settingsFile = $settings_file; $actual->readSettings(); $this->assertEqual(sys_get_temp_dir(), $actual->log); unlink($settings_file); }