-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathautoload.php
48 lines (33 loc) · 1.49 KB
/
autoload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
include_once dirname(__FILE__).'/../vendor/autoload.php';
// delete coverage.xml if present
$coverageFile = dirname(__FILE__).'/../coverage.xml';
if(is_file($coverageFile)){
unlink($coverageFile);
}
// copy tests/index.inc to the root of the package as index.php
$packageRootDir = dirname(__FILE__).'/../';
$index = "";
if(defined('APP_COVERAGE') && APP_COVERAGE == "true"){
// concat tests/index.inc and resources/index.php and copy to {package_root}/index.php
$__indexFixture = file_get_contents($packageRootDir.'/tests/index.inc');
// get a temp directory to store coverage files for each request in this run
$coverageDir = sys_get_temp_dir().'/php-platform/web-session/test-coverage/'.microtime(true);
mkdir($coverageDir,0777,true);
chmod($coverageDir, 0777);
define('COVERAGE_DIR', $coverageDir);
$__indexFixture = str_replace('COVERAGE_DIR', "'$coverageDir'", $__indexFixture);
$index = $__indexFixture.$index;
register_shutdown_function(function () use($coverageDir){
// aggregate the coverage reports
$coverageFiles = array_diff(scandir($coverageDir),array('.','..'));
$phpCodeCoverage = new PHP_CodeCoverage();
foreach ($coverageFiles as $coverageFile){
$coverage = include $coverageDir.'/'.$coverageFile;
$phpCodeCoverage->merge($coverage);
}
$writer = new PHP_CodeCoverage_Report_Clover();
$writer->process($phpCodeCoverage, 'coverage.xml');
});
}
file_put_contents($packageRootDir.'/index.php', $index);