Работает ли покрытие кода PHPUnit_Selenium?

В документации PHPUnit говорится, что можно получить покрытие кода данные:

PHPUnit_Extensions_SeleniumTestCase может собирать информацию о покрытии кода для тестов, запускаемых через Selenium:

  1. Скопируйте PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php в корневой каталог документов вашего веб-сервера.

  2. В файле конфигурации php.ini вашего веб-сервера настройте PHPUnit/Extensions/SeleniumTestCase/prepend.php и PHPUnit/Extensions/SeleniumTestCase/append.php как auto_prepend_file и auto_append_file соответственно.

  3. В вашем классе тестового примера, который расширяет PHPUnit_Extensions_SeleniumTestCase, используйте protected $coverageScriptUrl = ‘https://host/phpunit_coverage.php’; чтобы настроить URL-адрес для скрипта phpunit_coverage.php.

Я не смог заставить это вывести какую-либо информацию о покрытии. Я могу получить информацию о покрытии кода с помощью обычных модульных тестов.

Для моего приложения, работающего в https://localhost/ts2_templates/, я скопировал phpunit_coverage.php в https://localhost/phpunit_coverage.php.

Я добавил в 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»

… и подтверждено, что они вызываются с помощью die(«yep it’s me»);.

Наконец, я добавил следующее в свой тестовый пример:

<?php class WebTest extends PHPUnit_Extensions_Selenium2TestCase { # added line below protected $coverageScriptUrl = ‘https://localhost/phpunit_coverage.php’; protected function setUp() { $this->setBrowser(‘firefox’); $this->setBrowserUrl(‘https://localhost/ts2_templates’); } public function testTitle() { $this->url(‘https://localhost/ts2_templates’); $this->assertContains(‘test’, $this->title()); } } ?>

Вот команда для запуска теста с покрытием кода, сгенерированная 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

Вот результат XML-файла покрытия:

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

Сам тест проходит.

Я проверил, что нигде в коде нет операторов выхода или смерти.

Любые идеи?

Источник: ledsshop.ru

Стиль жизни - Здоровье!