¿Funciona la cobertura de código PHPUnit_Selenium?
En los documentos PHPUnit, dice que es posible obtener datos de cobertura de código:
PHPUnit_Extensions_SeleniumTestCase puede recopilar información de cobertura de código para las pruebas ejecutadas a través de Selenium:
Copie PHPUnit / Extensions / SeleniumTestCase / phpunit_coverage.php en el directorio raíz de documentos de su servidor web.
En el archivo de configuración php.ini de su servidor web, configure PHPUnit / Extensions / SeleniumTestCase / prepend.php y PHPUnit / Extensions / SeleniumTestCase / append.php como auto_prepend_file y auto_append_file, respectivamente.
En su clase de caso de prueba que amplía PHPUnit_Extensions_SeleniumTestCase, use $ insuranceScriptUrl = 'http: //host/phpunit_coverage.php'; para configurar la URL para el script phpunit_coverage.php.
No he podido obtener esto para generar información de cobertura. Soy capaz de obtener información de cobertura de código a través de pruebas de unidad normales.
Para mi aplicación corriendo enhttp://localhost/ts2_templates/
He copiadophpunit_coverage.php
ahttp://localhost/phpunit_coverage.php
.
He añadido lo siguiente a php.ini:
auto_prepend_file = "/path/to/pear/share/pear/PHPUnit/Extensions/SeleniumTestCase/prepend.php"
auto_append_file = "/path/to/pear/share/pear/PHPUnit/Extensions/SeleniumTestCase/append.php"
... y verificaron que están siendo llamados con undie("yep it's me");
.
Finalmente, agregué lo siguiente a mi caso de prueba:
<?php
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
# added line below
protected $coverageScriptUrl = 'http://localhost/phpunit_coverage.php';
protected function setUp()
{
$this->setBrowser('firefox');
$this->setBrowserUrl('http://localhost/ts2_templates');
}
public function testTitle()
{
$this->url('http://localhost/ts2_templates');
$this->assertContains('test', $this->title());
}
}
?>
Aquí está el comando para ejecutar la prueba con cobertura de código, generado por PHPStorm:
/Applications/MAMP/bin/php5.3/bin/php -dxdebug.coverage_enable=1 /private/var/folders/pp/0t4y41f95j5313qm_f8b42fw0000gn/T/ide-phpunit.php --coverage-clover /path/to/coverage/ts2_templates$WebTest.coverage --no-configuration WebTest /Users/Ian/php/ts2_templates/tests/WebTest.php
Aquí está la salida del archivo XML de cobertura:
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1341015508">
<project timestamp="1341015508">
<metrics files="0" loc="0" ncloc="0" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
</project>
</coverage>
La prueba en sí pasa.
He verificado que no hay ninguna declaración de salida o muerte en ninguna parte del código.
¿Algunas ideas?