Skip to content

Commit

Permalink
Merge 3f3d811 into 146be51
Browse files Browse the repository at this point in the history
  • Loading branch information
kilip committed Jun 13, 2019
2 parents 146be51 + 3f3d811 commit eb996d1
Show file tree
Hide file tree
Showing 11 changed files with 157 additions and 61 deletions.
65 changes: 54 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,61 @@
Code Coverage
----
This packages add functionality to customize code coverage collecting
This packages making your code coverage collecting easy.

[![License](https://img.shields.io/packagist/l/doyo/code-coverage.svg?style=flat-square)](https://github.com/doyolabs/code-coverage/blob/master/LICENSE)
[![Build Status][travis-master]][travis]
[![Coverage][cover-stat-master]][cover-master]
[![Score][score-stat-master]][score-master]
| Project | License | Version | Build | Coverage | Score |
| :---: | :---: | :---: | :---: | :---: | :---: |
| [main project][main] | [![License][main-license-badge]][main-license] | [![Version][main-version-badge]][main-version] | [![Build Status][main-travis-badge]][main-travis] | [![Coverage][main-cover-badge]][main-cover] | [![Score][main-score-badge]][main-score] |
| [code-coverage-bridge][bridge] | [![License][bridge-license-badge]][bridge-license] | [![Version][bridge-version-badge]][bridge-version] | [![Build Status][bridge-travis-badge]][bridge-travis] | [![Coverage][bridge-cover-badge]][bridge-cover] | [![Score][bridge-score-badge]][bridge-score] |
| [behat-code-coverage][behat] | [![License][behat-license-badge]][behat-license] | [![Version][behat-version-badge]][behat-version] | [![Build Status][behat-travis-badge]][behat-travis] | [![Coverage][behat-cover-badge]][behat-cover] | [![Score][behat-score-badge]][behat-score] |
| [phpspec-code-coverage][phpspec] | [![License][phpspec-license-badge]][phpspec-license] | [![Version][phpspec-version-badge]][phpspec-version] | [![Build Status][phpspec-travis-badge]][phpspec-travis] | [![Coverage][phpspec-cover-badge]][phpspec-cover] | [![Score][phpspec-score-badge]][phpspec-score] |

[travis]: https://travis-ci.com/doyolabs/code-coverage
[travis-master]: https://img.shields.io/travis/com/doyolabs/code-coverage/master.svg?style=flat-square
[cover-master]: https://coveralls.io/github/doyolabs/code-coverage?branch=master
[cover-stat-master]: https://img.shields.io/coveralls/github/doyolabs/code-coverage/master.svg?style=flat-square
[score-master]: https://scrutinizer-ci.com/g/doyolabs/code-coverage/?branch=master
[score-stat-master]: https://img.shields.io/scrutinizer/quality/g/doyolabs/code-coverage/master.svg?style=flat-square
[main]: https://github.com/doyolabs/code-coverage-bridge
[main-version]: https://packagist.org/packages/doyo/code-coverage
[main-version-badge]: https://img.shields.io/packagist/vpre/doyo/code-coverage.svg?style=flat-square
[main-license]: https://github.com/doyolabs/code-coverage/blob/master/LICENSE
[main-license-badge]: https://img.shields.io/packagist/l/doyo/code-coverage.svg?style=flat-square
[main-travis]: https://travis-ci.com/doyolabs/code-coverage
[main-travis-badge]: https://img.shields.io/travis/com/doyolabs/code-coverage/master.svg?style=flat-square
[main-cover]: https://coveralls.io/github/doyolabs/code-coverage?branch=master
[main-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/code-coverage/master.svg?style=flat-square
[main-score]: https://scrutinizer-ci.com/g/doyolabs/code-coverage/?branch=master
[main-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/code-coverage/master.svg?style=flat-square

[bridge]: https://github.com/doyolabs/code-coverage-bridge
[bridge-license]: https://github.com/doyolabs/code-coverage-bridge/blob/master/LICENSE
[bridge-license-badge]: https://img.shields.io/packagist/l/doyo/code-coverage-bridge.svg?style=flat-square
[bridge-version]: https://packagist.org/packages/doyo/code-coverage-bridge
[bridge-version-badge]: https://img.shields.io/packagist/vpre/doyo/code-coverage-bridge.svg?style=flat-square
[bridge-travis]: https://travis-ci.com/doyolabs/code-coverage-bridge
[bridge-travis-badge]: https://img.shields.io/travis/com/doyolabs/code-coverage-bridge/master.svg?style=flat-square
[bridge-cover]: https://coveralls.io/github/doyolabs/code-coverage-bridge?branch=master
[bridge-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/code-coverage-bridge/master.svg?style=flat-square
[bridge-score]: https://scrutinizer-ci.com/g/doyolabs/code-coverage-bridge/?branch=master
[bridge-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/code-coverage-bridge/master.svg?style=flat-square

[behat]: https://github.com/doyolabs/behat-code-coverage
[behat-license]: https://github.com/doyolabs/behat-code-coverage/blob/master/LICENSE
[behat-license-badge]: https://img.shields.io/packagist/l/doyo/behat-code-coverage.svg?style=flat-square
[behat-version]: https://packagist.org/packages/doyo/behat-code-coverage
[behat-version-badge]: https://img.shields.io/packagist/vpre/doyo/behat-code-coverage.svg?style=flat-square
[behat-travis]: https://travis-ci.com/doyolabs/behat-code-coverage
[behat-travis-badge]: https://img.shields.io/travis/com/doyolabs/behat-code-coverage/master.svg?style=flat-square
[behat-cover]: https://coveralls.io/github/doyolabs/behat-code-coverage?branch=master
[behat-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/behat-code-coverage/master.svg?style=flat-square
[behat-score]: https://scrutinizer-ci.com/g/doyolabs/behat-code-coverage/?branch=master
[behat-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/behat-code-coverage/master.svg?style=flat-square

[phpspec]: https://github.com/doyolabs/phpspec-code-coverage
[phpspec-license]: https://github.com/doyolabs/phpspec-code-coverage/blob/master/LICENSE
[phpspec-license-badge]: https://img.shields.io/packagist/l/doyo/phpspec-code-coverage.svg?style=flat-square
[phpspec-version]: https://packagist.org/packages/doyo/phpspec-code-coverage
[phpspec-version-badge]: https://img.shields.io/packagist/vpre/doyo/phpspec-code-coverage.svg?style=flat-square
[phpspec-travis]: https://travis-ci.com/doyolabs/phpspec-code-coverage
[phpspec-travis-badge]: https://img.shields.io/travis/com/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[phpspec-cover]: https://coveralls.io/github/doyolabs/phpspec-code-coverage?branch=master
[phpspec-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[phpspec-score]: https://scrutinizer-ci.com/g/doyolabs/phpspec-code-coverage/?branch=master
[phpspec-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/phpspec-code-coverage/master.svg?style=flat-square

About
----
Expand Down
35 changes: 18 additions & 17 deletions src/behat/README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
Behat Coverage Extension [![License](https://img.shields.io/packagist/l/doyo/behat-code-coverage.svg?style=flat-square)](#License)
Behat Code Coverage Extension
---
Provide code coverage extension during behat tests

### Status
| Branch | Status | Coverage | Score |
| :---: | :---: | :---: | :---: |
| **master** | [![Build Status][travis-master]][travis] | [![Coverage][cover-stat-master]][cover-master] | [![Score][score-stat-master]][score-master]
| **develop** | [![Build Status][travis-develop]][travis] | [![Coverage][cover-stat-develop]][cover-develop] | [![Score][score-stat-develop]][score-develop]
[![License][behat-license-badge]][behat-license]
[![Version][behat-version-badge]][behat-version]
[![Build Status][behat-travis-badge]][behat-travis]
[![Coverage][behat-cover-badge]][behat-cover]
[![Score][behat-score-badge]][behat-score]


### Support
* PHP: >=7.0
* Behat: >=3.0
* PHP Code Coverage: >=5.3

[travis]: https://travis-ci.com/doyolabs/behat-code-coverage
[travis-master]: https://img.shields.io/travis/com/doyolabs/behat-code-coverage/master.svg?style=flat-square
[travis-develop]: https://img.shields.io/travis/com/doyolabs/behat-code-coverage/develop.svg?style=flat-square
[cover-master]: https://coveralls.io/github/doyolabs/behat-code-coverage?branch=master
[cover-develop]: https://coveralls.io/github/doyolabs/behat-code-coverage?branch=develop
[cover-stat-develop]: https://img.shields.io/coveralls/github/doyolabs/behat-code-coverage/develop.svg?style=flat-square
[cover-stat-master]: https://img.shields.io/coveralls/github/doyolabs/behat-code-coverage/master.svg?style=flat-square
[score-master]: https://scrutinizer-ci.com/g/doyolabs/behat-code-coverage/?branch=master
[score-develop]: https://scrutinizer-ci.com/g/doyolabs/behat-code-coverage/?branch=develop
[score-stat-develop]: https://img.shields.io/scrutinizer/quality/g/doyolabs/behat-code-coverage/develop.svg?style=flat-square
[score-stat-master]: https://img.shields.io/scrutinizer/quality/g/doyolabs/behat-code-coverage/master.svg?style=flat-square
[behat]: https://github.com/doyolabs/behat-code-coverage
[behat-license]: https://github.com/doyolabs/behat-code-coverage/blob/master/LICENSE
[behat-license-badge]: https://img.shields.io/packagist/l/doyo/behat-code-coverage.svg?style=flat-square
[behat-version]: https://packagist.org/packages/doyo/behat-code-coverage
[behat-version-badge]: https://img.shields.io/packagist/vpre/doyo/behat-code-coverage.svg?style=flat-square
[behat-travis]: https://travis-ci.com/doyolabs/behat-code-coverage
[behat-travis-badge]: https://img.shields.io/travis/com/doyolabs/behat-code-coverage/master.svg?style=flat-square
[behat-cover]: https://coveralls.io/github/doyolabs/behat-code-coverage?branch=master
[behat-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/behat-code-coverage/master.svg?style=flat-square
[behat-score]: https://scrutinizer-ci.com/g/doyolabs/behat-code-coverage/?branch=master
[behat-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/behat-code-coverage/master.svg?style=flat-square
2 changes: 1 addition & 1 deletion src/bridge/Controller/RemoteController.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public function initAction(Request $request)
$config = json_decode($config, true);

$session = new RemoteSession($name);
$session->init($config);
$session->init($name, $config);

$data = [
'message' => 'coverage session: '.$name.' initialized.',
Expand Down
1 change: 0 additions & 1 deletion src/bridge/Resources/config/code_coverage.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

<container xmlns="http://symfony.com/schema/dic/services">
<parameters>
<parameter key="driver.class">Doyo\Bridge\CodeCoverage\Driver\Dummy</parameter>
<parameter key="processor.class">Doyo\Bridge\CodeCoverage\Processor</parameter>
<parameter key="runtime.class">Doyo\Bridge\CodeCoverage\Environment\Runtime</parameter>
<parameter key="php.coverage.class">SebastianBergmann\CodeCoverage\CodeCoverage</parameter>
Expand Down
1 change: 1 addition & 0 deletions src/bridge/Resources/public/coverage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?php
13 changes: 12 additions & 1 deletion src/bridge/Session/RemoteSession.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

namespace Doyo\Bridge\CodeCoverage\Session;

use Doyo\Bridge\CodeCoverage\ContainerFactory;
use Doyo\Bridge\CodeCoverage\Driver\Dummy;
use Doyo\Bridge\CodeCoverage\Processor;
use Doyo\Bridge\CodeCoverage\TestCase;
Expand All @@ -23,6 +24,11 @@ class RemoteSession extends Session
const HEADER_SESSION_KEY = 'HTTP_DOYO_COVERAGE_SESSION';
const HEADER_TEST_CASE_KEY = 'HTTP_DOYO_COVERAGE_TESTCASE';

public function __construct($name, array $config)
{
parent::__construct($name);
}

public static function startSession()
{
if (!isset($_SERVER[static::HEADER_SESSION_KEY])) {
Expand All @@ -41,7 +47,7 @@ public static function startSession()
return true;
}

public function init(array $config)
public function oldInit(array $config)
{
$filter = new Filter();
if (isset($config['filterOptions'])) {
Expand All @@ -61,6 +67,11 @@ public function init(array $config)
$this->reset();
}

public function init($name, array $config)
{
$container = (new ContainerFactory($config))->getContainer();
}

public function doStartSession()
{
$name = $_SERVER[static::HEADER_TEST_CASE_KEY];
Expand Down
17 changes: 10 additions & 7 deletions src/bridge/Session/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,18 @@ abstract class Session implements \Serializable, SessionInterface
*/
protected $codeCoverage;

protected $patchXdebug = true;
/**
* @var array
*/
protected $config;

public function __construct($name, $patchXdebug = true)
public function __construct($name, array $config = array())
{
$dir = sys_get_temp_dir().'/doyo/behat-coverage-extension';
$adapter = new FilesystemAdapter($name, 0, $dir);
$this->adapter = $adapter;
$this->name = $name;
$this->patchXdebug = $patchXdebug;
$dir = sys_get_temp_dir().'/doyo/behat-coverage-extension';
$adapter = new FilesystemAdapter($name, 0, $dir);
$this->adapter = $adapter;
$this->name = $name;
$this->config = $config;
$this->refresh();
}

Expand Down
29 changes: 29 additions & 0 deletions src/bridge/Session/SessionFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php


namespace Doyo\Bridge\CodeCoverage\Session;


use Doyo\Bridge\CodeCoverage\Driver\Dummy;
use Doyo\Bridge\CodeCoverage\Processor;
use Symfony\Component\DependencyInjection\ContainerInterface;

class SessionFactory
{
public function createLocalSession(ContainerInterface $container, $name)
{
$session = new LocalSession($name);
$this->decorateSession($container, $session);
}

protected function decorateSession(ContainerInterface $container, SessionInterface $session)
{
$filter = $container->get('coverage.filter');
$dummy = $container->getParameter(new Dummy());

$processor = new Processor($dummy, $filter);
$session->setProcessor($processor);
$session->setContainer($container);
$session->save();
}
}
12 changes: 12 additions & 0 deletions src/bridge/Session/SessionInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

use Doyo\Bridge\CodeCoverage\ProcessorInterface;
use Doyo\Bridge\CodeCoverage\TestCase;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
* Code coverage session.
Expand All @@ -27,6 +29,14 @@ interface SessionInterface
* @param bool $flag
*/
public function setPatchXdebug(bool $flag);

/**
* Set code coverage to use
*
* @param CodeCoverage $coverage
* @return void
*/
public function setCodeCoverage(CodeCoverage $coverage);

/**
* Returns current session name.
Expand Down Expand Up @@ -94,4 +104,6 @@ public function start();
* @return array
*/
public function stop();

public function setContainer(ContainerInterface $container);
}
12 changes: 1 addition & 11 deletions src/bridge/Spec/Session/RemoteSessionSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,7 @@ public function it_is_initializable()

public function it_should_init_coverage_session()
{
$config =[
'filterOptions' => [
'whitelistedFiles' => [
__FILE__ => true,
],
],
'codeCoverageOptions' => [
'addUncoveredFilesFromWhitelist' => false,
],
];
$this->init($config);
$this->init([]);
$processor = $this->getProcessor();
$processor->shouldHaveType(Processor::class);
$processor->getCodeCoverageOptions()->shouldHaveKeyWithValue('addUncoveredFilesFromWhitelist', false);
Expand Down
31 changes: 19 additions & 12 deletions src/phpspec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,30 @@ PhpSpec Code Coverage
---
Provide code coverage extension during phpspec run

[![License](https://img.shields.io/packagist/l/doyo/phpspec-code-coverage.svg?style=flat-square)](https://github.com/doyolabs/phpspec-code-coverage/blob/master/LICENSE)
[![Build Status][travis-master]][travis]
[![Coverage][cover-stat-master]][cover-master]
[![Score][score-stat-master]][score-master]
[![License][phpspec-license-badge]][phpspec-license]
[![Version][phpspec-version-badge]][phpspec-version]
[![Build Status][phpspec-travis-badge]][phpspec-travis]
[![Coverage][phpspec-cover-badge]][phpspec-cover]
[![Score][phpspec-score-badge]][phpspec-score]

[phpspec]: https://github.com/doyolabs/phpspec-code-coverage
[phpspec-license]: https://github.com/doyolabs/phpspec-code-coverage/blob/master/LICENSE
[phpspec-license-badge]: https://img.shields.io/packagist/l/doyo/phpspec-code-coverage.svg?style=flat-square
[phpspec-version]: https://packagist.org/packages/doyo/phpspec-code-coverage
[phpspec-version-badge]: https://img.shields.io/packagist/vpre/doyo/phpspec-code-coverage.svg?style=flat-square
[phpspec-travis]: https://travis-ci.com/doyolabs/phpspec-code-coverage
[phpspec-travis-badge]: https://img.shields.io/travis/com/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[phpspec-cover]: https://coveralls.io/github/doyolabs/phpspec-code-coverage?branch=master
[phpspec-cover-badge]: https://img.shields.io/coveralls/github/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[phpspec-score]: https://scrutinizer-ci.com/g/doyolabs/phpspec-code-coverage/?branch=master
[phpspec-score-badge]: https://img.shields.io/scrutinizer/quality/g/doyolabs/phpspec-code-coverage/master.svg?style=flat-square


### Support
* PHP: >=7.0
* Behat: >=3.0
* PHP Code Coverage: >=5.3

[travis]: https://travis-ci.com/doyolabs/phpspec-code-coverage
[travis-master]: https://img.shields.io/travis/com/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[cover-master]: https://coveralls.io/github/doyolabs/phpspec-code-coverage?branch=master
[cover-stat-master]: https://img.shields.io/coveralls/github/doyolabs/phpspec-code-coverage/master.svg?style=flat-square
[score-master]: https://scrutinizer-ci.com/g/doyolabs/phpspec-code-coverage/?branch=master
[score-stat-master]: https://img.shields.io/scrutinizer/quality/g/doyolabs/phpspec-code-coverage/master.svg?style=flat-square

Install
----
```shell
Expand All @@ -44,4 +51,4 @@ extensions:
reports:
php: build/cov/phpspec.cov
html: build/phpspec
```
```

0 comments on commit eb996d1

Please sign in to comment.