Completed
Push — master ( 2c86a7...690ed0 )
by
unknown
36:26 queued 28:50
created

CoverageContext::getCoverageKeyFromScope()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
dl 0
loc 6
rs 9.4285
c 2
b 1
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace Victoire\Tests\Features\Context;
4
5
use Behat\Behat\Context\Context;
6
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
7
8
class CoverageContext implements Context
9
{
10
    /**
11
     * @var \PHP_CodeCoverage
12
     */
13
    private static $coverage;
14
15
    /** @BeforeSuite */
16
    public static function setup()
17
    {
18
        if (!self::$coverage) {
19
            $filter = new \PHP_CodeCoverage_Filter();
20
            $filter->addDirectoryToBlacklist(__DIR__.'/../../../vendor');
21
            $filter->addDirectoryToWhitelist(__DIR__.'/../../../Bundle');
22
            self::$coverage = new \PHP_CodeCoverage(null, $filter);
23
        }
24
    }
25
26
    /** @AfterSuite */
27
    public static function tearDown()
28
    {
29
        $writer = new \PHP_CodeCoverage_Report_HTML();
30
        $writer->process(self::$coverage, sys_get_temp_dir().'/Victoire/logs/coverage');
31
    }
32
33
    private function getCoverageKeyFromScope(BeforeScenarioScope $scope)
34
    {
35
        $name = $scope->getFeature()->getTitle().'::'.$scope->getScenario()->getTitle();
36
37
        return $name;
38
    }
39
40
    /**
41
     * @BeforeScenario
42
     */
43
    public function startCoverage(BeforeScenarioScope $scope)
44
    {
45
        self::$coverage->start($this->getCoverageKeyFromScope($scope));
46
    }
47
48
    /** @AfterScenario */
49
    public function stopCoverage()
50
    {
51
        self::$coverage->stop();
52
    }
53
}
54