Czy PHPUnit_Selenium Code Coverage działa?

W dokumentach PHPUnit, mówi, że możliwe jest uzyskanie danych pokrycia kodu:

PHPUnit_Extensions_SeleniumTestCase może zbierać informacje o pokryciu kodu dla testów przeprowadzanych przez Selenium:

Skopiuj PHPUnit / Extensions / SeleniumTestCase / phpunit_coverage.php do katalogu głównego dokumentu serwera.

W pliku konfiguracyjnym php.ini serwera WWW skonfiguruj odpowiednio PHPUnit / Extensions / SeleniumTestCase / prepend.php i PHPUnit / Extensions / SeleniumTestCase / append.php jako plik auto_prepend_file i auto_append_file.

W twojej klasie przypadków testowych, która rozszerza PHPUnit_Extensions_SeleniumTestCase, użyj protected $ coveringScriptUrl = 'http: //host/phpunit_coverage.php'; skonfigurować adres URL skryptu phpunit_coverage.php.

Nie udało mi się tego uzyskać, aby wyświetlić jakiekolwiek informacje o zasięgu. Jestem w stanie uzyskać informacje o pokryciu kodu za pomocą normalnych testów jednostkowych.

Dla mojej aplikacji działającej nahttp://localhost/ts2_templates/ Skopiowałemphpunit_coverage.php dohttp://localhost/phpunit_coverage.php.

Dodałem następujące informacje do 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"

... i zweryfikowałem, że są wywoływani za pomocądie("yep it's me");.

Na koniec dodałem następujące elementy do mojego przypadku testowego:

<?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());
    }
}

?>

Oto polecenie uruchomienia testu z pokryciem kodu wygenerowane przez 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

Oto wyjście pliku XML pokrycia:

<?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>

Sam test mija.

Sprawdziłem, że w kodzie nie ma żadnych instrukcji wyjścia lub die.

Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion