PHPSpec-无法运行,有人使用它进行php开发吗?

PHPSpec-无法运行,有人使用它进行php开发吗?,php,bdd,phpspec,Php,Bdd,Phpspec,搜索stackoverflow以查找此项,但未找到任何答案 来自RubyonRails和Rspec,我需要一个像Rspec(更简单的转换)这样的工具。通过PEAR安装并尝试运行它,但它不工作(尚未) 只是想问问周围是否有人在使用它有同样的问题,因为它根本没有运行 尝试使用手册中的示例运行它- 一无所获 甚至跑步 phpspec some_dummy_value 不返回任何内容我也无法让它运行,但您也可以将BDD与PHPUnit一起使用。检查:我真的很期待使用PHPSpec,哦,我想我会检查PH

搜索stackoverflow以查找此项,但未找到任何答案

来自RubyonRails和Rspec,我需要一个像Rspec(更简单的转换)这样的工具。通过PEAR安装并尝试运行它,但它不工作(尚未)

只是想问问周围是否有人在使用它有同样的问题,因为它根本没有运行

尝试使用手册中的示例运行它-

一无所获

甚至跑步

phpspec some_dummy_value

不返回任何内容

我也无法让它运行,但您也可以将BDD与PHPUnit一起使用。检查:

我真的很期待使用PHPSpec,哦,我想我会检查PHPUnit

我尝试使用PHPSpec,但发现它有缺陷/不成熟。我强烈建议您编写单元测试。

您可以在PHPUnit中编写RSpec-ish类型的测试,但是有几件事阻碍了它

  • 别嘲笑我,别让你 重新申报,所以很难设定 把一堆树桩堆成一堆 方法,然后将其作为 需要。你可以通过 安排要设置的存根 在期待之后,但这很奇怪

  • PHP不像Ruby那样动态,所以 不能轻易地模仿或淘汰课堂 方法,除非你特别 为此设计类,甚至 那就很难看了。(今年5月) 更改PHP5.3的后期静态 绑定功能)


我已经成功地使用了PHPSpec,但现在还没有积极开发,是吗?这很好,但我不认为我会接受一个停滞不前的项目。无论如何,在我使用以下设置从webbrowser运行测试时,您可能会发现一些东西来帮助您为CLI设置它

phpspeconfig.php

$projectDir = realpath( dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' ) . DIRECTORY_SEPARATOR;

$simdal_root = $projectDir . 'library';
$phpspec_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'PHPSpec';
$mockery_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'Mockery';

$paths = array(
    'SimDAL'=>$simdal_root,
    'PHPSpec'=>$phpspec_root,
    'Mockery'=>$mockery_root
);

set_include_path( implode( PATH_SEPARATOR, $paths ) . PATH_SEPARATOR . get_include_path() );

require_once 'PHPSpec.php';
require_once 'Mockery/Framework.php';

class Custom_Autoload
{
    public static function autoload($class)
    {
        //$path = dirname(dirname(__FILE__));
        //include $path . '/' . str_replace('_', '/', $class) . '.php';
        if (preg_match('/^([^ _]*)?(_[^ _]*)*$/', $class, $matches)) {
            include str_replace('_', '/', $class) . '.php';
            return true;
        }

        return false;
    }

}

spl_autoload_register(array('Custom_Autoload', 'autoload'));
然后是运行它的文件:AllSpecs.php

require_once 'PHPSpecTestConfiguration.php';

$options = new stdClass();
$options->recursive = true;
$options->specdocs = true;
$options->reporter = 'html';

PHPSpec_Runner::run($options);

我不喜欢CLI测试……但这可能会对某些人有所帮助。

您好,这确实是一个很老的问题,但我认为应该在这里。每个人都有此问题,请检查。

注意,PHPSpec已停止:


在中断2年后,PHPSpec的开发已于2010年8月重新启动。代码库现在看起来更稳定了。我会再试一次

该网站现在位于www.phpspec.net

您可以在上找到文档。它基本上是第一个版本的更新

如果您需要任何进一步的帮助,您也可以通过他们的邮件列表与开发人员联系:

是的,我也喜欢SimpleTest——但我认为它是一个很好的“入门”测试套件,其中PHPUnit是一个演进(由IDE和更多支持)。SimpleTest的最新版本是2008/04/08,我想在此补充一点,PHPSpec开发已经重新启动。检查。
require_once 'PHPSpecTestConfiguration.php';

$options = new stdClass();
$options->recursive = true;
$options->specdocs = true;
$options->reporter = 'html';

PHPSpec_Runner::run($options);