9
9
abstract class TestBase extends \PHPUnit_Framework_TestCase {
10
10
11
11
private static $ errorLogDir = null ;
12
+ private static $ coverage = null ;
12
13
13
14
static function setUpBeforeClass (){
14
15
parent ::setUpBeforeClass ();
15
16
17
+ // generate coverage for tests run in php-cli process
18
+ if (defined ('COVERAGE_DIR ' )){
19
+ $ filter = new \PHP_CodeCoverage_Filter ();
20
+ $ filter ->addDirectoryToWhitelist (dirname (__FILE__ ).'/../../src ' );
21
+ self ::$ coverage = new \PHP_CodeCoverage (null ,$ filter );
22
+ self ::$ coverage ->start ('testiCircleAccounts ' );
23
+ }
24
+
16
25
// create a temporary error log directory
17
26
$ errorLogDir = sys_get_temp_dir ().'/php-platform/restful/errors/ ' .microtime (true );
18
27
mkdir ($ errorLogDir ,0777 ,true );
@@ -23,28 +32,12 @@ static function setUpBeforeClass(){
23
32
// clear caches
24
33
SettingsCache::getInstance ()->reset ();
25
34
26
- // build the routes - with coverage
27
- if (defined ('APP_COVERAGE ' ) && APP_COVERAGE == "true " ){
28
- $ filter = new \PHP_CodeCoverage_Filter ();
29
- $ filter ->addDirectoryToWhitelist (dirname (__FILE__ ).'/../../src ' );
30
-
31
- $ coverage = new \PHP_CodeCoverage (null ,$ filter );
32
- $ coverage ->start ('testRESTful ' );
33
- }
34
-
35
35
Build::run ();
36
36
37
37
/**
38
38
* @desc HACK : same file is used by SettingsCache , tests are run from root user and apache is run from www-data , causing permission issues to access this shared cache file
39
39
*/
40
40
chmod (sys_get_temp_dir ().'/settingscache236512233125 ' , 0777 );
41
-
42
- if (isset ($ coverage )){
43
- $ coverage ->stop ();
44
- $ writer = new \PHP_CodeCoverage_Report_PHP ();
45
- $ coverageFileName = 'coverage_build.php ' ;
46
- $ writer ->process ($ coverage , COVERAGE_DIR .'/ ' .$ coverageFileName );
47
- }
48
41
}
49
42
50
43
function setUp (){
@@ -88,6 +81,13 @@ function assertContainsAndClearLog($message){
88
81
static function tearDownAfterClass (){
89
82
// delete error log directory
90
83
rmdir (self ::$ errorLogDir );
84
+
85
+ if (defined ('COVERAGE_DIR ' )){
86
+ self ::$ coverage ->stop ();
87
+ $ writer = new \PHP_CodeCoverage_Report_PHP ();
88
+ $ coverageFileName = md5 (microtime ()).'.php ' ;
89
+ $ writer ->process (self ::$ coverage , COVERAGE_DIR .'/ ' .$ coverageFileName );
90
+ }
91
91
}
92
92
93
93
}
0 commit comments