| Current Path : /var/www/html/vendor/codeception/codeception/src/Codeception/Coverage/Subscriber/ |
| Current File : /var/www/html/vendor/codeception/codeception/src/Codeception/Coverage/Subscriber/RemoteServer.php |
<?php
namespace Codeception\Coverage\Subscriber;
use Codeception\Configuration;
use Codeception\Event\SuiteEvent;
use Codeception\Util\FileSystem;
/**
* When collecting code coverage on remote server
* data is retrieved over HTTP and not merged with the local code coverage results.
*
* Class RemoteServer
* @package Codeception\Coverage\Subscriber
*/
class RemoteServer extends LocalServer
{
public function isEnabled()
{
return $this->module and $this->settings['remote'] and $this->settings['enabled'];
}
public function afterSuite(SuiteEvent $e)
{
if (!$this->isEnabled()) {
return;
}
$suite = strtr($e->getSuite()->getName(), ['\\' => '.']);
if ($this->options['coverage-xml']) {
$this->retrieveAndPrintXml($suite);
}
if ($this->options['coverage-html']) {
$this->retrieveAndPrintHtml($suite);
}
if ($this->options['coverage-crap4j']) {
$this->retrieveAndPrintCrap4j($suite);
}
if ($this->options['coverage-cobertura']) {
$this->retrieveAndPrintCobertura($suite);
}
if ($this->options['coverage-phpunit']) {
$this->retrieveAndPrintPHPUnit($suite);
}
}
protected function retrieveAndPrintHtml($suite)
{
$tempFile = tempnam(sys_get_temp_dir(), 'C3') . '.tar';
file_put_contents($tempFile, $this->c3Request('html'));
$destDir = Configuration::outputDir() . $suite . '.remote.coverage';
if (is_dir($destDir)) {
FileSystem::doEmptyDir($destDir);
} else {
mkdir($destDir, 0777, true);
}
$phar = new \PharData($tempFile);
$phar->extractTo($destDir);
unlink($tempFile);
}
protected function retrieveAndPrintXml($suite)
{
$destFile = Configuration::outputDir() . $suite . '.remote.coverage.xml';
file_put_contents($destFile, $this->c3Request('clover'));
}
protected function retrieveAndPrintCrap4j($suite)
{
$destFile = Configuration::outputDir() . $suite . '.remote.crap4j.xml';
file_put_contents($destFile, $this->c3Request('crap4j'));
}
protected function retrieveAndPrintCobertura($suite)
{
$destFile = Configuration::outputDir() . $suite . '.remote.cobertura.xml';
file_put_contents($destFile, $this->c3Request('cobertura'));
}
protected function retrieveAndPrintPHPUnit($suite)
{
$tempFile = tempnam(sys_get_temp_dir(), 'C3') . '.tar';
file_put_contents($tempFile, $this->c3Request('phpunit'));
$destDir = Configuration::outputDir() . $suite . '.remote.coverage-phpunit';
if (is_dir($destDir)) {
FileSystem::doEmptyDir($destDir);
} else {
mkdir($destDir, 0777, true);
}
$phar = new \PharData($tempFile);
$phar->extractTo($destDir);
unlink($tempFile);
}
}