Установка 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)
А как прикрутить всё это дело к NetBeans?
К сожалению, не могу подсказать, так как не работаю с данной IDE
Ты работаешь в PhpStorm, наверное?
Да, но пока только адаптируюсь. Использую его всего две недели. До этого долгое время работал в Eclipse, потом в Aptana
Андрей, если вам вдруг интересно, то на PhpStorm сейчас скидка. Его можно купить за $59 http://www.jetbrains.com/phpstorm/buy/
При установки pear появляется ошибка «php startup unable to load dynamic library ‘/usr/local/php5/ext\php_curl.dll'»
В чем проблема и как её исправить?
Файл php_curl.dll в указанном месте присутствует?
Да, конечно.
Могу лишь дать глупый совет проверить подключение curl в php.ini. Если и там все ок, то задумайтесь над заменой Денвера. Пакет очень древний и давно не развивается.
Скорее всего вы поставили Денвер не на диск C, тогда в php.ini укажите явно extension_dir = «[ваш диск]:\WebServers\usr\local\php5\ext»