Интеграция Codeigniter 2 с phpspec2

Я хочу интегрировать phpspec2 с CodeIgniter 2. Я успешно установил phpspec с помощью composer, как описано на веб-сайте phpspec. Теперь я хотел бы интегрировать его в свою установку CodeIgniter 2. Я нашел статью AniDear на эту тему. и сделал все как описано. Однако, когда я запускаю bin/phpspec, я получаю сообщение об ошибке:

PHP Warning: require(core/Common.php): failed to open stream: No such file or directory 
in  C:\xampp\htdocs\eljotengine\spec\ci_bootstrap.php on line 37

Warning: require(core/Common.php): failed to open stream: No such file or directory in C:\xampp\htdocs\eljotengine\spec\ci_bootstrap.php on line 37

и так далее. Моя файловая структура выглядит так:

eljotengine
|-application
|-sytem
|- ... other CI
|-spec
| |- ci_bootstrap.php

Я использую xampp в Windows 7. Мой файл ci_bootstrap.php выглядит так же, как в упомянутой выше статье AniDear.

Я пытался изменить пути в файле ci_bootstrap.php (похоже, проблема в нем), но это мало что изменило.

Любые идеи, как заставить это работать?

Привет :)


person jban    schedule 30.11.2012    source источник


Ответы (1)


У меня тоже проблема с PHPSpec2. Поскольку я пробовал это только с PHPSpec (не с PHPSpec2), я бы посоветовал вам вместо этого установить PHPSpec. Просто измените файл composer.json в строке "phpspec/phpspec2": "*" на "phpspec/phpspec": "*" , затем снова запустите composer update.

Запустите этот phpspec с помощью команды vendor\bin\phpspec.php.bat spec в пути к вашему проекту, тогда как «spec» — это папка, содержащая файлы спецификаций.

И поскольку вы запускаете phpspec из каталога своего проекта, я предлагаю изменить содержимое внутри ci_bootstrap.php следующим образом:

define('BASEPATH',realpath('system/').'/'); //set absolute path to CI system/
define('APPPATH', 'application/'); //set relative path to CI application
set_include_path(
    get_include_path().PATH_SEPARATOR.
    realpath(APPPATH).PATH_SEPARATOR.
    realpath(BASEPATH).PATH_SEPARATOR.
    'spec');  //adding 'spec' in path, for easily do require 'ci_bootstrap.php' from inside spec files

require BASEPATH.'core/Common.php';
require APPPATH.'config/constants.php';
require BASEPATH.'core/Controller.php';
person Anidear    schedule 10.12.2012