将Codeigniter 2与phpspec2集成

时间:2012-11-30 16:43:55

标签: php codeigniter xampp bdd phpspec

我想将phpspec2与CodeIgniter 2集成。我已经使用composer成功安装了phpspec,如phpspec website所述。现在我想将它集成到我的CodeIgniter 2安装中。我在这个主题上找到了一个article by 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

我在Windows 7上使用xampp。我的ci_bootstrap.php文件看起来像AniDear上面提到的文章中的文件。

我试图更改ci_bootstrap.php文件中的路径(这似乎是问题),但它没有太大变化。

任何想法如何使这项工作?

迎接:)

1 个答案:

答案 0 :(得分:1)

我也遇到了PHPSpec2的问题。 由于我只使用PHPSpec(不是PHPSpec2)尝试过,我建议您安装PHPSpec。只需将文件composer.json更改为"phpspec/phpspec2": "*"行至"phpspec/phpspec": "*",然后再次运行composer update

使用项目路径上的命令vendor\bin\phpspec.php.bat spec运行此phpspec,而“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';
相关问题