Skip to content

Instantly share code, notes, and snippets.

@legovaer
Created April 14, 2015 12:48
Show Gist options
  • Save legovaer/095748f6efee34ecc7c5 to your computer and use it in GitHub Desktop.
Save legovaer/095748f6efee34ecc7c5 to your computer and use it in GitHub Desktop.
Behat Code Coverage report
<?php
require_once('vendor/autoload.php');
$file = 'config/behat.yml';
$coverage_out = '/www/behat/reports/coverage';
use Symfony\Component\DependencyInjection\ContainerBuilder,
Symfony\Component\Console\Input\ArrayInput,
Symfony\Component\Console\Output\NullOutput;
use Behat\Behat\DependencyInjection\BehatExtension,
Behat\Behat\DependencyInjection\Configuration\Loader;
$filter = new \PHP_CodeCoverage_Filter();
$filter->addDirectoryToWhitelist('features');
$coverage = new \PHP_CodeCoverage(null, $filter);
$coverage->start('Behat Coverage');
$container = new ContainerBuilder();
$loader = new Loader($file);
$configs = $loader->loadConfiguration('default');
$basePath = \realpath(\dirname($file));
$extension = new BehatExtension($basePath);
$extension->load($configs, $container);
$container->addObjectResource($extension);
$container->compile();
$container->get('behat.console.command')->run(new ArrayInput(['--ansi' => true]), new NullOutput());
$coverage->stop();
$writer = new \PHP_CodeCoverage_Report_PHP;
$writer->process($coverage, $coverage_out.'.cov');
$writer = new \PHP_CodeCoverage_Report_HTML;
$writer->process($coverage, $coverage_out);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment