Last active
September 28, 2018 14:00
-
-
Save eliecharra/9c8b3ba57998b50e14a6 to your computer and use it in GitHub Desktop.
Behat php code coverage context
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Behat\Behat\Context\Context; | |
use Behat\Behat\Hook\Scope\BeforeScenarioScope; | |
/** | |
* Created by PhpStorm. | |
* User: elie | |
* Date: 01/09/15 | |
* Time: 11:29 | |
*/ | |
class CoverageContext implements Context | |
{ | |
/** | |
* @var PHP_CodeCoverage | |
*/ | |
private static $coverage; | |
/** @BeforeSuite */ | |
public static function setup() | |
{ | |
$filter = new PHP_CodeCoverage_Filter(); | |
$filter->addDirectoryToBlacklist(__DIR__ . "/../../vendor"); | |
$filter->addDirectoryToWhitelist(__DIR__ . "/../../src"); | |
self::$coverage = new PHP_CodeCoverage(null, $filter); | |
} | |
/** @AfterSuite */ | |
public static function tearDown() | |
{ | |
$writer = new PHP_CodeCoverage_Report_HTML(); | |
$writer->process(self::$coverage, __DIR__ . "/../../app/logs/coverage"); | |
} | |
private function getCoverageKeyFromScope(BeforeScenarioScope $scope) | |
{ | |
$name = $scope->getFeature()->getTitle() . '::' . $scope->getScenario()->getTitle(); | |
return $name; | |
} | |
/** | |
* @BeforeScenario | |
*/ | |
public function startCoverage(BeforeScenarioScope $scope) | |
{ | |
self::$coverage->start($this->getCoverageKeyFromScope($scope)); | |
} | |
/** @AfterScenario */ | |
public function stopCoverage() | |
{ | |
self::$coverage->stop(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment