CI = & get_instance(); $filter = new PHP_CodeCoverage_Filter(); $filter->addDirectoryToBlacklist('system'); $filter->addDirectoryToBlacklist('application/logs'); $filter->addDirectoryToBlacklist('application/third_party'); $filter->addFileToBlacklist('application/libraries/DX_Auth.php'); $filter->addFileToBlacklist('application/libraries/DX_Auth_Event.php'); $this->coverage = new PHP_CodeCoverage(null, $filter); if (file_exists($this->persistent_coverage_data)) { $s = file_get_contents($this->persistent_coverage_data); $this->coverage = unserialize($s); } } /** * Enable the coverage * Create a file containing a valid coverage object */ public function enable() { $this->disable(); $s = serialize($this->coverage); file_put_contents($this->persistent_coverage_data, $s); } /** * Disable coverage */ public function disable() { if ($this->active()) { unlink($this->persistent_coverage_data); } if (file_exists($this->clover_file)) { unlink($this->clover_file); } } /** * true when coverage has been enabled */ public function active() { return file_exists($this->persistent_coverage_data); } /** * Reset coverage */ public function start() { if ($this->active()) { $this->coverage->start("CodeIgniter coverage"); } } /** * Save the coverage context */ public function stop() { if ($this->active()) { $this->coverage->stop(); $s = serialize($this->coverage); file_put_contents($this->persistent_coverage_data, $s); } } /** * Generate coverage results */ public function coverage_result($type = "clover") { // $this->coverage->stop(); if ($this->active()) { if ($type == "clover") { $filename = $this->clover_file; // echo "generating $filename\n"; $writer = new PHP_CodeCoverage_Report_Clover(); $writer->process($this->coverage, $filename); } else { // echo "generating HTML\n"; $writer = new PHP_CodeCoverage_Report_HTML(); $writer->process($this->coverage, $this->html_dir); } } } }