Intereting Posts
Я хочу построить дерево с этим массивом. Это категории и подкатегории Id. Проблема в Экспорт файла csv в php Почему вы не используете C для своих веб-приложений? XML-файл Parse RDF для получения всех rdf: о значениях Могу ли я использовать MS SQL Server в качестве базы данных поддержки для Joomla? Моя контактная форма отправляет пустые сообщения body_messages Почему этот короткий скрипт php не отправляет электронную почту? CodeMirror имеет контент, но не будет отображаться до нажатия клавиши Извлеките значения из двух разных таблиц и поместите их в представление с помощью Laravel Отобразить виджет внутри CGridView в Yii Модуль Magento для изменения диаграммы приборной панели выделить несколько ключевых слов в поиске многомерный массив Запросить определенное значение с помощью сводной таблицы mySQL Неподдерживаемый драйвер в laravel 4 при использовании пакета laravel-oci8

Получение PHPUnit Working – Include Path установлен неправильно?

Я пытаюсь заставить PHPUnit работать в моей среде разработки, но я попал в блокпост, когда речь заходит о включении PHPUnit в мои скрипты. Я знаю, что мне нужно установить путь include на PHP, но каждая попытка, которую я пробовал, не выполняется, если компилятор не видит класс PHPUnit_Framework_TestCase.

Я просто запускал обновления на PHP и PEAR, а PHPUnit установлен на компьютер, потому что я могу получить доступ к нему через командную строку просто отлично.

PHPUnit установлен в / usr / share / php / PHPunit

Груша находится в / usr / share / php / PEAR

Есть что-то, что мне не хватает? Это мой первый раз, когда я пытаюсь использовать PHPUnit или даже что-то из PEAR. Я на Ubuntu 10.10. Любая помощь будет оценена по достоинству.

Изменить – в моем включении в моем PHP-файле нет ничего. Сейчас код просто

<?php class Stacktest extends PHPUnit_Framework_TestCase { } 

Я понятия не имею, что включать или что устанавливать в include-путь, потому что кажется, что для всей информации в Интернете о PHPUnit эта небольшая часть информации критически отсутствует.

Если вы правильно установили phpunit (через PEAR), тогда нет необходимости включать файл include; вам просто нужно изменить способ его использования для тестирования php-файлов (например, вы используете его, чтобы проверить, работал ли файл, перейдя в браузер типа localhost). С помощью phpunit вы можете использовать командную строку; глава 5 дает тот же пример с использованием командной строки (я бы предположил, что это стандарт). Поэтому, если вы его правильно установили, вы можете сделать это:

  1. Файл ExampleTest.php, расположенный в корне localhost (для меня это / var / www):

     class ExampleTest extends PHPUnit_Framework_TestCase { public function testOne() { $this->assertTrue(FALSE); } } 
  2. Откройте консоль (терминал в Mac или Linux, командную строку на Win), перейдите к корневому каталогу localhost (где вы сохранили ExampleTest.php) и введите следующее:

     phpunit --verbose ExampleTest.php 
  3. Тебе следует увидеть:

     PHPUnit 3.4.13 by Sebastian Bergmann. F Time: 1 second, Memory: 6.50Mb There was 1 failure: 1) ExampleTest::testOne Failed asserting that <boolean:false> is true. /var/www/ExampleTest.php:6 FAILURES! Tests: 1, Assertions: 1, Failures: 1. 

Примечания. Все вышесказанное предполагает, что вы правильно установили phpunit (как указано в главе 3 ), и после этого вы перезапустили apache.

если вы действительно хотите запустить тесты в своем браузере, используйте следующий код

 # error reporting ini_set('display_errors',1); error_reporting(E_ALL|E_STRICT); # include TestRunner require_once 'PHPUnit/TextUI/TestRunner.php'; # our test class class ExampleTest extends PHPUnit_Framework_TestCase { public function testOne() { $this->assertTrue(FALSE); } } # run the test $suite = new PHPUnit_Framework_TestSuite('ExampleTest'); PHPUnit_TextUI_TestRunner::run($suite); 

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

Просто заметили Ubuntu 10.10 в вашем вопросе. Для установки Ubuntu я рекомендую это: в терминале do:

 sudo pear uninstall phpunit/PHPUnit sudo apt-get install phpunit sudo /etc/init.d/apache2 restart 

Примечание. Не выдавайте первую строку, если вы не установили phpunit через грушу. Последняя строка кажется необходимой (по крайней мере, в моем случае).

 sudo /etc/init.d/apache2 reload # Or sudo service apache2 restart 

Начиная с PHPUnit 3.5, вы должны включить автозагрузчик самостоятельно:

 require 'PHPUnit/Autoload.php'; // PEAR should be in your include_path 

Добавьте эту строку в свой php.ini :

 include_path=".:/usr/share/php:/usr/share/pear:/usr/share/php/PHPunit:/usr/share/php/PEAR" 

Сохраните файл и перезапустите apache.

Кроме того, убедитесь, что вы редактируете правильный php.ini . Попробуйте использовать locate php.ini для поиска всех мест, которые он может скрывать. Обычно это находится в каталоге /usr .

Убедитесь, что каждый раз, когда вы используете include () или require (), вы префиксное имя файла с именем dirname(__FILE__) . Это гарантирует, что файл, который вы включаете, находится по пути, указанному вами по отношению к фактическому файлу, в котором находится объект include. По умолчанию, PHP включает в себя относительно файла, который вызывается для запуска программы.

Мне удалось заставить его работать, используя set_include_path в верхней части моего скрипта (см. Пример здесь http://www.siteconsortium.com/h/p1.php?id=php002 ), а затем я также должен был включить, так как я проводил тест Selenium, но он работал.

 require_once ('PHPUnit/Autoload.php'); require_once 'PHPUnit/Extensions/SeleniumTestCase.php';