Вопросы

Работает ли покрытие кода 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:

Читать:
Модульное тестирование PHP с использованием Zend Auth и Zend ACL

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

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

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

Любые идеи?

Похожие записи

Запуск JupyterQ из Anaconda Navigator

admin

Ошибка Xcode tmp / strip при попытке сделать архив

admin

Yii создает ошибку приложения на Ubuntu 13.04

admin

Хорошая идея — использовать два управления состоянием в одном проекте флаттера?

admin

Оператор SELECT для удаления пустых столбцов из набора результатов с переменными данными

admin

Сохранение файла в / tmp в лямбде изнутри папки

admin