PHPSpec - 无法运行,任何人使用它进行PHP开发?

时间:2008-11-27 07:34:14

标签: php bdd phpspec

为此搜索了stackoverflow并找不到答案

来自Ruby On Rails和Rspec,我需要一个像rspec这样的工具(更容易过渡)。通过PEAR安装它并尝试运行它但它还没有工作

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

尝试使用手册中的示例运行它 - http://dev.phpspec.org/manual/en/before.writing.code.specify.its.required.behaviour.html

phpspec NewFileSystemLoggerSpec

什么都不返回

甚至正在运行

phpspec some_dummy_value

什么都不返回

8 个答案:

答案 0 :(得分:6)

PHPSpec的开发自2010年8月开始,经过2年的休整后重新开始。代码库现在看起来更稳定。我会再试一次。

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

您可以在http://www.phpspec.net/documentation找到相关文档。它基本上是对第一个版本的更新。

如果您需要任何进一步的帮助,您也可以通过他们的邮件列表联系开发人员: http://groups.google.com/group/phpspec-dev

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我尝试使用phpspec,但发现它太错误/不成熟。我强烈建议SimpleTest编写单元测试。

答案 4 :(得分:0)

你可以在PHPUnit中编写RSpec-ish类型的测试,但它受到了一些阻碍。

  • PHPUnit模拟不允许你 重新声明它们,因此很难设置 之前有一堆存根 方法,然后将它们覆盖为 需要。你可以解决这个问题 安排存根设置 在期望之后,但这很奇怪。

  • PHP不像Ruby那么动态 不能轻易模拟或剔除课程 方法,除非你具体 为此甚至设计课程 然后它很难看。 (这可能 改变PHP 5.3的后期静态 绑定功能)。

答案 5 :(得分:0)

我已经成功使用了PHPSpec,但它现在还没有积极开发吗?这很棒,但不要以为我会选择停滞不前的项目。无论如何,我使用以下设置从webbrowser运行测试,也许你会找到一些东西来帮助你为CLI设置它。

PHPSpecConfiguration.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测试......但这可能对某人有帮助。

答案 6 :(得分:0)

你好相当老的Q.但我认为http://behat.org/应该在这里。每个人都有这个问题应该检查出来。

答案 7 :(得分:0)