PHPUnit - 15+ часов потрачено впустую и все еще не работает

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

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

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

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

Извините за разглагольствование - мой вопрос:

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

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

Поэтому я вручную просмотрел все файлы и добавил 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 и повторить попытку? Я также думаю, что существует проблема с брандмауэром, потому что я могу запустить ту же команду на другом компьютере, который не является частью домена моей компании.


person jreed121    schedule 13.06.2011    source источник
comment
я думаю, что ваш include_path неправильно установлен в каталог PEAR   -  person Khurram Ijaz    schedule 13.06.2011
comment
кажется правильным: include_path = .;C:\xampp\php\PEAR   -  person jreed121    schedule 14.06.2011
comment
1) Сам pear у вас нормально работает? 2) Какую версию PHPUnit вы установили, какие еще пакеты с pear.phpunit.de перечислены при pear list -a? 3) Есть ли у вас какие-либо доступные обновления, когда вы pear list-upgrades, особенно для самой груши? 4) Пробовали ли вы переустанавливать PHPUnit? 5) попробуйте pear install --alldeps --force phpunit/PHPUnit   -  person LazyOne    schedule 14.06.2011
comment
См. здесь: Рабочее решение по установке PHPUnit через PEAR в Windows XAMPP   -  person hakre    schedule 14.06.2011
comment
@LaxyOne 1) Да. 2) Я не могу вернуть номер версии. 3) PEAR обновлен, сейчас я все обновляю. 4) Да, но я не уверен, что удалил все правильно, поэтому я удалил xampp и все переустановил. 5) Пишет "Нет доступных выпусков для пакета pear.phpunit.de/PHPUnit не удалось установить"   -  person jreed121    schedule 14.06.2011


Ответы (6)


«Нет доступных выпусков для пакета «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
person cweiske    schedule 14.06.2011
comment
Я всегда использую грушу с опцией --force --all-deps - person powtac; 14.06.2011
comment
--force следует использовать только в том случае, если что-то сломано. В 98% случаев это не нужно. - person cweiske; 14.06.2011
comment
Он ничего не ломает, просто перезаписывает существующие вещи. Особенно для таких вопросов, очень полезно. - person powtac; 14.06.2011
comment
Если вы не используете --alldeps, это может все сломать. - person cweiske; 14.06.2011
comment
Трюк с удаленной информацией помог мне найти мою проблему, выдав мне сообщение об ошибке: произошла ошибка безопасности символической ссылки, препятствующая правильной работе кеша для меня. Запуск pear clear-cache исправил это. - person thaddeusmt; 27.03.2012

Загрузите и установите установщик XAMPP для Windows 1.7.3.

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

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

<сильный>1. Установите XAMPP на C:\

  • Version 1.7.3 will create xampp directory automatically, here's what I answered...
    • Should I add shortcuts to the startmenu/desktop? 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
  • Open a Command Prompt with Administrator privileges
    • Right-click on Command Prompt -icon and choose Run as administrator
  • Change directory to C:\xampp\php
    • cd xampp
    • cd php
  • Введите php go-pear.phar (устанавливает новый PEAR)
  • Выберите system-широкую установку
  • Установите All компонентов
  • Would you like alter php.ini
    • Answer 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 и все зависимости)

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

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

person kaulusp    schedule 14.06.2011

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

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

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

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

    • PHP Unit
    • Поток токенов PHP
    • PHP-таймер
    • Текстовый шаблон PHP
    • Итератор файлов PHP
    • 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.

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

Я надеюсь, что все это поможет.

person Timothée Jeannin    schedule 15.06.2011

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

pear clear-cache

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

person Victor Priceputu    schedule 22.08.2013

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

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

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

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

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

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

$ phpunit Foo_BarTest

or

$ phpunit Foo/BarTest.php

or

$ phpunit .

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

person cweiske    schedule 14.06.2011
comment
когда я пытаюсь запустить «pear list pear.phpunit.de/phpunit», он говорит, что «pear.phpunit.de/phpunit» не установлен. - person jreed121; 14.06.2011

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

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 байт установка выполнена успешно: channel://pear.phpunit.de/PHPUnit-3.7.21 установка выполнена успешно: канал:/ /pear.phpunit.de/PHP_Invoker-1.1.2

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

person Terminator    schedule 16.06.2013