Пример #1
0
 /**
  * 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;
 }
Пример #2
0
function stop_coverage()
{
    # hack until i can think of a way to run tests first and w/o exiting
    $autorun = function_exists("run_local_tests");
    if ($autorun) {
        $result = run_local_tests();
    }
    CodeCoverage::getInstance()->stopCoverage();
    if ($autorun) {
        exit($result ? 0 : 1);
    }
}
Пример #3
0
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new CodeCoverage();
         self::$instance->readSettings();
     }
     return self::$instance;
 }
<?php

/**
 * Generate a code coverage report
 *
 * @package        SimpleTest
 * @subpackage     Extensions
 */
# optional arguments:
#  --reportDir=some/directory    the default is ./coverage-report
#  --title='My Coverage Report'  title the main page of your report
/**#@+
 * include coverage files
 */
require_once dirname(__FILE__) . '/../coverage_utils.php';
require_once dirname(__FILE__) . '/../coverage.php';
require_once dirname(__FILE__) . '/../coverage_reporter.php';
/**#@-*/
$cc = CodeCoverage::getInstance();
$cc->readSettings();
$handler = new CoverageDataHandler($cc->log);
$report = new CoverageReporter();
$args = CoverageUtils::parseArguments($_SERVER['argv']);
$report->reportDir = CoverageUtils::issetOr($args['reportDir'], 'coverage-report');
$report->title = CoverageUtils::issetOr($args['title'], "Simpletest Coverage");
$report->coverage = $handler->read();
$report->untouched = $handler->readUntouchedFiles();
$report->generate();
Пример #5
0
 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);
 }
<?php

/**
 * 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();
Пример #7
0
 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);
 }