Установка PHPUnit на Denwer

Прежде всего, рекомендую сделать резервную копию директории /user/local/php5. Так будет проще всего откатить изменения, если установка пройдет некорректно.

Теперь необходимо инициализировать PEAR. Процедура описана на сайте PEAR, но ввиду особенностей пакета Denwer, имеет свои нюансы.

Скачиваем архив go-pear.phar и сохраняем в директорию T:\usr\local\php5. Обратите внимание на то, что диск T должен соответствовать имени вашего виртуального диска (обычно Z).




Вызываем Windows консоль и переходим в директорию T:\usr\local\php5. Здесь важно учесть, что переходить в данную директорию нужно именно на виртуальном диске. То есть на время установки забудьте о том, что Denwer это директория на одном из логических разделов. В противном случае, при установке возникнут ошибки с поиском подключенных расширений PHP.

Распаковываем архив

php go-pear.phar

Устанавливаем как local, иначе часть файлов установщик будет писать в директорию Windows и в директорию C:/php/, даже если ранее ее не существовало.

На одном из шагов будет предложено ознакомиться с путями установки и исправить их в случае необходимости. Я рекомендую исправить путь 12, иначе инсталлятор может снова не найти php расширения. У меня список приобрел следующий вид:

1. Installation base ($prefix)                   : T:\usr\local\php5
 2. Temporary directory for processing            : T:\usr\local\php5\tmp
 3. Temporary directory for downloads             : T:\usr\local\php5\tmp
 4. Binaries directory                            : T:\usr\local\php5
 5. PHP code directory ($php_dir)                 : T:\usr\local\php5\pear
 6. Documentation directory                       : T:\usr\local\php5\docs
 7. Data directory                                : T:\usr\local\php5\data
 8. User-modifiable configuration files directory : T:\usr\local\php5\cfg
 9. Public Web Files directory                    : T:\usr\local\php5\www
10. Tests directory                               : T:\usr\local\php5\tests
11. Name of configuration file                    : T:\usr\local\php5\pear.ini
12. Path to CLI php.exe                           : T:\usr\local\php5

Когда установка будет завершена, наберите в консоли команду pear. Если увидите список возможных параметров, значит пакет установился.

На всякий случай пробуем обновить PEAR вводом команды:

pear upgrade PEAR

Если получите ошибку «SECURITY ERROR: Will not write to C: … Possible symlink attack. upgrade failed», значит нужно почистить директорию с кэшем. В ошибке она указана. Просто удалите все ее содержимое.

Следом за этим устанавливаем PHPUnit, выполнив две команды:

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit

Будут загружены и установлены все необходимые пакеты последних стабильных версий.

Теперь самое время проверить корректность работы PHPUnit. Можно создать тестовый тест (масло масляное) следующего содержания и запустить его:

<?php

require_once 'PHPUnit/Autoload.php';

class MyClass
{
    public function foo($a, $b) {
        return $a + $b;
    }
}

class MyClassTest extends PHPUnit_Framework_TestCase
{
    public function testfoo() {
        $o = new MyClass();
        $this->assertEquals(4, $o->foo(2, 2));
    }
}

?>
phpunit index.php

Должны увидеть следующий результат:

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

t:\home\localhost\tests>phpunit index.php
PHPUnit 3.7.10 by Sebastian Bergmann.

.
Time: 0 seconds, Memory: 2.75Mb
OK (1 test, 1 assertion)

t:\home\localhost\tests>

Если помимо этого видите список ошибок, связанных с невозможностью загрузить подключенные в php.ini екстеншены, значит необходимо вспомнить мои комментарии по поводу виртуального диска. Здесь действуют те же принципы.

Комментарии (10)

  1. Андрей

    А как прикрутить всё это дело к NetBeans?

  2. Пётр

    При установки pear появляется ошибка «php startup unable to load dynamic library ‘/usr/local/php5/ext\php_curl.dll'»
    В чем проблема и как её исправить?

Добавить комментарий для Пётр Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *