Typesetter/phpunit/ServerPrepend.php

30 lines
937 B
PHP
Raw Permalink Normal View History

2021-09-08 19:52:21 +02:00
<?php
/**
* Start xdebug code coverage
* Register autoload for merging coverage with php-code-coverage
* https://stackoverflow.com/questions/10167775/aggregating-code-coverage-from-several-executions-of-phpunit
*
*/
defined('gp_unit_testing') or define('gp_unit_testing',true);
defined('gpdebug') or define('gpdebug',true); // sets error_reporting(ALL)
if( function_exists('xdebug_start_code_coverage') ){
xdebug_start_code_coverage();
function SaveXdebugCoverage(){
$cov_dir = dirname(__DIR__).'/x_coverage';
$name = str_replace('/','-','request-'.$_SERVER['HTTP_X_REQ_ID'].'-'.$_SERVER['REQUEST_METHOD'].'-'.$_SERVER['REQUEST_URI']);
$cov_file = $cov_dir.'/'.$name.'.json';
$data = xdebug_get_code_coverage();
file_put_contents( $cov_file, json_encode($data,JSON_PRETTY_PRINT));
}
register_shutdown_function('SaveXdebugCoverage');
ob_start(function($buffer){
SaveXdebugCoverage();
return $buffer;
});
}