PHPUnit - 15+ часов впустую и до сих пор не работает - PullRequest
9 голосов
/ 13 июня 2011

Итак, я хочу включить PHUnit, чтобы я мог запустить сервер селена, но я пришел к печальному осознанию того, что это, вероятно, никогда не произойдет для меня. Я пробовал это с многочисленными различными версиями WAMP и XAMPP (которые я не считаю своей проблемой), но я всегда врезаюсь в стену, где происходит одно из двух:

  • Пакет не может быть найден, т. Е. «Нет доступных выпусков для пакета». Pear.phpunit.de/File_Iterator «установка не удалась», и у меня все необходимые каналы обнаружены.

  • Я прошёл установку (одним способом по-другому), и в результате я получил ошибку типа «Неустранимая ошибка:« PHPUnit_Runner_BaseTestRunner »не найден в C: \ xampp \ php \ PEAR \ PHPUnit \ TextUI \ TestRunner. php on line 60 "- замените 'PHPUnit_Runner_BaseTestRunner' на любой другой файл, который должен быть включен.

Я невероятно расстроен из-за отсутствия согласованности по всем направлениям не только с PHPUnit, но и с грушей. Кажется, мне нужно пройти 50 шагов, ждать, пока планеты соединились и вращались в моем кресле дюжину раз - по часовой стрелке ...

Извините за напыщенную речь - мой вопрос:

Есть ли простое и понятное руководство для этого, которое вы, ребята, добились успеха? Или, может быть, есть где-нибудь tut + zip, который я могу использовать, чтобы просто обойти установку груши и просто скопировать файлы? - потому что кажется, что это все, что груша делает в любом случае. Подойдет любой тип сервера (Wamp, Xampp и т. Д.) И версия - я выполню новую установку, и мне больше не нужно будет запускать что-либо еще на этой машине, поэтому все, что мне нужно, - заставить это работать.

Edit:

Итак, я вручную просмотрел все файлы и добавил require_once () везде, где казалось, что они нужны. Затем я скачал остальные файлы из http://pear.phpunit.de/ и поместил их в нужные места. Нет ошибок! Но теперь, когда я запускаю 'c: \ xampp \ php> phpunit', ничего не происходит! Я просто получаю другую командную строку - это также происходит, когда я пытаюсь запустить что-то вроде 'c: \ xampp \ php> phpunit test1', хотя я не совсем уверен, где мне нужно хранить файл test1.php. ..

Редактировать 2:

Я почти уверен, что что-то не так с файлом .bat для phpunit, потому что когда я пытаюсь запустить какую-либо команду (например, phpunit --help, --version и т. Д.), Ничего не происходит, я просто получаю другую командную строку , Должен ли я удалить файл .bat и папку phpunit и попробовать еще раз? Я также думаю, что есть проблема с брандмауэром, потому что я могу запустить одну и ту же команду на другом компьютере, который не входит в домен моей компании.

Ответы [ 6 ]

9 голосов
/ 14 июня 2011

"Нет доступных выпусков для пакета" pear.phpunit.de/File_Iterator

Это может иметь несколько причин:

  1. Вам необходимообновите информацию о канале

    $ pear channel-update pear.phpunit.de

  2. Проблемы с сетевым подключением, т. е. брандмауэр не разрешает это, или вам нужно настроить прокси.

Чтобы отладить его, попробуйте

# pear remote-info pear.phpunit.de/File_Iterator
Package details:
================
Latest      1.2.6
Installed   1.2.6

Если это работает, вы можете установить его.В противном случае, попытайтесь принудительно установить его:

$ pear install -f pear.phpunit.de/File_Iterator

, если это все еще не работает, посетите http://pear.phpunit.de и загрузите пакет вручную.установить его с

$ pear install File_iterator-1.2.6.tgz
4 голосов
/ 14 июня 2011

Загрузите и установите XAMPP Windows 1.7.3 Installer.

Имя файла: xampp-win32-1.7.3.exe

Я бы НЕ рекомендовал использовать более новую версию, это МОЖЕТ нарушить эту процедуру.

1. Установите XAMPP на C:\

  • Версия 1.7.3 автоматически создаст каталог xampp, вот что я ответил ...
    • Должен ли я добавить ярлыки в стартовое меню / рабочий стол? No
    • Должен ли я правильно найти пути XAMPP? Yes
    • Портативный? Yes
    • Введите введите выход и т. Д.

2. Откройте C:\xampp\php\php.ini и включите curl

  • раскомментированная строка 952
  • расширение = php_curl.dll

3. Установите новую версию PEAR needed for PHPUnit 3.X

  • Скачать: http://pear.php.net/go-pear.phar
  • Сохранить под: C:\xampp\php
  • Открытие командной строки с правами администратора
    • Щелкните правой кнопкой мыши по командной строке -icon и выберите Run as administrator
  • Изменить каталог на C:\xampp\php
    • cd xampp
    • cd php
  • Тип php go-pear.phar (Устанавливает новую PEAR)
  • Выберите system для всей установки
  • Установка All компонентов
  • Хотите изменить php.ini?
    • Ответ Yes
    • Это добавит PEAR к пути include_path = ".;\xampp\php\PEAR" Строка 796
  • После установки запустите C:\xampp\php\PEAR_ENV.reg

4. Установить PHPUnit

  • Убедитесь, что вы все еще в C:\xampp\php
  • Тип pear channel-discover components.ez.no (это необходимо для PHPUnit)
  • Тип pear channel-discover pear.symfony-project.com (также необходим PHPUnit)
  • Тип pear channel-discover pear.phpunit.de (Это phpunit)
  • Тип pear update-channels (обновляет определения каналов)
  • Тип pear upgrade --alldeps (обновляет все существующие пакеты и груши)
  • Тип pear install --alldeps phpunit/PHPUnit (устанавливает PHPUnit и все зависимости)

Добро пожаловать! Это заняло несколько часов, чтобы решить:)

Если есть что добавить / удалить, оставьте комментарий.

1 голос
/ 22 августа 2013

попробуйте это, прежде чем пытаться установить что-либо, используя PEAR:

pear clear-cache

У меня были всевозможные проблемы, пакеты не были найдены, и теперь это работает. всякий раз, когда я что-то делаю с помощью груши, я сначала очищаю кеш

1 голос
/ 15 июня 2011

У меня раньше была такая же проблема, и я не нашел учебника по этой проблеме.

Я наконец-то решил ее через некоторое время.

Вы можете попробовать выполнить эти шаги.

  1. Скачать PHPUnit и его зависимости по адресу: https://github.com/sebastianbergmann

    • Модуль PHP
    • Поток токенов PHP
    • Таймер PHP
    • PHP TextTemplate
    • PHP File Itérator
    • PHP CodeCoverage
  2. Извлечение PHPUnit и каждой его зависимости в папке вашеговыбор.

  3. Открыть файл

    FolderWhereYouExtractedEverything/PHPUnit-3.5.13OrAnotherVersion/phpunit.php
    
  4. Добавить следующий код при замене текста путями:

    $originalpath = 'PathToTheFolderWhereYouExtractedEverything';
    $path = $originalpath .'PathToThePHPUnitFolderContainedInTheFolderExtracted';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPCodeCoverageFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPFileIteratorFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTextTemplateFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTokenStreamFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTimerFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    
  5. Откройте файл "phpunit.bat" в папке phpunit, которую вы распаковали.(Что-то вроде PHPUnit-3.5.13)

  6. Замените все нижние строки следующим кодом:

    set PHPBIN="PathToThephp.exeFile"
    
    php -d safe_mode=Off "PathToThephpunit.phpFile" %*
    
  7. Отредактируйте переменные средыдобавив путь к

    PathToThePHPUnitFolderContainedInThePHPUnitFolderExtracted 
    
  8. Измените переменные среды, добавив путь к файлу php.exe.

Вы можетеесть некоторые устаревшие предупреждения о функциях, просто замените функции на устаревшие.

Надеюсь, все это поможет.

0 голосов
/ 16 июня 2013

// Использовать эту команду

C: \ wamp \ bin \ php \ php5.4.3> pear install --force --alldeps phpunit / PHPUnit

// Ответить на консоль Неизвестноудаленный канал: pear.symfony.com предупреждение: phpunit / PHPUnit требуется пакет "channel: //pear.symfony.com/Yaml" (версия> = 2.0.0, версия <= 2.99.99); предупреждение: phpunit / PHP_Invoker требует PHPрасширение "pcntl" загрузка PHPUnit-3.7.21.tgz ... Начало загрузки PHPUnit-3.7.21.tgz (118 818 байт) ..... сделано: 118 818 байт загрузка PHP_Invoker-1.1.2.tgz ... Запускзагрузить PHP_Invoker-1.1.2.tgz (3705 байт) ... сделано: 3705 байт установить нормально: канал: //pear.phpunit.de/PHPUnit-3.7.21 установить нормально: канал: //pear.phpunit.de/PHP_Invoker-1.1.2</p>

// Результат успешно, и вы можете начать работу с вашими тестами, !!!Goodluck C: \ wamp \ bin \ php \ php5.4.3> phpunit PHPUnit 3.7.21 от Себастьяна Бергманна.

0 голосов
/ 14 июня 2011

Но теперь, когда я запускаю 'c: \ xampp \ php> phpunit', ничего не происходит!

Находится ли исполняемый файл phpunit?Узнайте с помощью:

$ pear list pear.phpunit.de/phpunit
...
script /usr/bin/phpunit

"Сценарий" является правильным местоположением.Выполните это непосредственно или поместите каталог в переменную PATH системы *1009* (которая также доступна в Windows).

Запуск тестов

PHPUnit ожидает, что файлы будут в PSR-0 совместимых путей, то есть class Foo_BarTest в Foo/BarTest.php.В этом случае используйте

$ phpunit Foo_BarTest

или

$ phpunit Foo/BarTest.php

или

$ phpunit .

(для выполнения всех тестов).

...