некоторые проблемы с kohana unittest (cli и веб-доступ)

Я настроил модуль unittest kohana (3.2), как описано здесь. Так что я:

APPPATH/tests/
    phpunit.xml
    sampletest.php

И последние строки файла index.php:

require APPPATH.'bootstrap'.EXT;
if ( ! defined('SUPPRESS_REQUEST'))
    Request::factory()->execute()->send_headers();

Итак, первая проблема заключается в том, что в CLI появляется следующая ошибка:

ErrorException [ 8 ]: Undefined index: SERVER_NAME ~ SYSPATH/classes/kohana/url.php [ 79 ]

Это происходит из-за включенного E_STRICT. Поэтому, когда я выключаю E_STRICT, ничего не происходит. Я имею в виду, что для phpunit в CLI нет вывода, просто пустая строка.

И вторая проблема в том, что веб-доступ вообще не работает (http://localhost/unittest). Возникает ошибка 404. Может быть, я должен создать какой-нибудь маршрут или что-то в этом роде?


Mac OS 10.7.4
Apache 1.3.41
PHPUnit 3.6.11
Kohana 3.2.0

person witzawitz    schedule 01.07.2012    source источник


Ответы (1)


Веб-доступ не работает, потому что в версии Kohana 3.* веб-интерфейс больше не присутствует для модуля unittest. Единственный способ запустить тесты «из коробки» — сделать это через CLI.

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

  1. Открытый терминал
  2. измените каталог на каталог тестов для вашего приложения
  3. запустить «phpunit»

Кроме того, учебник немного устарел. Пересмотр настройки unittest в Kohana 3.2 был предложен в: Подавление запроса при запуске PHPUnit с Kohana 3.2

Поскольку он запускается из CLI, доступ к переменным среды HTTP недоступен.

Даже если они недоступны, вы можете установить их до начала работы, настроив их в файле phpunit.xml в соответствии с документацией PHPUnit Приложение по настройке:

Настройка параметров PHP INI, констант и глобальных переменных

Элемент и его дочерние элементы можно использовать для настройки параметров PHP, констант и глобальных переменных. Его также можно использовать для добавления в начало include_path.

<php>
    <includePath>.</includePath>
    <ini name="foo" value="bar"/>
    <const name="foo" value="bar"/>
    <var name="foo" value="bar"/>
    <env name="foo" value="bar"/>
    <post name="foo" value="bar"/>
    <get name="foo" value="bar"/>
    <cookie name="foo" value="bar"/>
    <server name="foo" value="bar"/>
    <files name="foo" value="bar"/>
    <request name="foo" value="bar"/>
</php>
person KauriNZ    schedule 14.07.2012