使用behat、mink和symfony2进行功能测试

使用behat、mink和symfony2进行功能测试,symfony,behat,mink,Symfony,Behat,Mink,我正在试着测试Behat和Mink的捆绑包,但我有一个问题 我很好地安装了这些包 我已经启动了:php app/console test-e=Behat-init@AcmeDemoBundle,文件夹特性已经创建 我在essai.feature中写了一个场景 我已经启动了:php app/console test-e@Behat AcmeDemoBundle,我得到了这个结果 特点:测试 为了测试 作为开发者 我需要能够提交一份联系表 场景:导航到欢迎页面#src\Acme\DemoBund

我正在试着测试Behat和Mink的捆绑包,但我有一个问题

  • 我很好地安装了这些包

  • 我已经启动了:php app/console test-e=Behat-init@AcmeDemoBundle,文件夹特性已经创建

  • 我在essai.feature中写了一个场景

  • 我已经启动了:php app/console test-e@Behat AcmeDemoBundle,我得到了这个结果

特点:测试 为了测试 作为开发者 我需要能够提交一份联系表

场景:导航到欢迎页面#src\Acme\DemoBundle\Features\>essai.feature:6 鉴于我在“/crud/文章”上

情景1(1未定义) 1个步骤(1个未定义) 0m0.243s

可以使用代码段为未定义的步骤实现步骤定义:

/** *@Given/^我在“([^”]*)”$/       * / 公共职能iAmOn($1)      { 抛出新的PendingException(); }

  • 当我尝试实现这些定义时,我启动了 php应用程序/控制台测试-e@Behat AcmeDemoBundle-dl
但是,我什么也没有得到!什么都没有执行,文件FeatureContext也没有修改


请帮助我找到解决方案

如果步骤定义有任何错误,它可能会导致“什么都没发生”之一“情景。在开始实施之前,最好从控制台输出复制新的步骤定义,并将其粘贴到FeatureContext中。

看起来您没有告诉Behat在哪里查找主上下文文件。您需要在behat配置文件中显式加载FeatureContext.php:

# config/behat.yml
default:
autoload: [ %paths.base%/../features/bootstrap ]
suites:
  default:
      paths: [ %paths.base%/../features ]
      filters:
      contexts:
          - FeatureContext
或者将FeatureContext.php放在Behat默认搜索的位置。从Behat文档的部分:

上下文类应该是可发现的,并且可以由Behat加载。那个 意味着你应该告诉Behat你的类文件。比哈特来了 使用PSR-0自动加载器开箱即用和默认自动加载器 目录是features/bootstrap。这就是为什么默认的FeatureContext 通过Behat很容易加载。您可以将自己的类置于 通过遵循PSR-0约定实现功能/引导,或者您甚至可以 通过behat.yml定义您自己的自定义自动加载文件夹


请你修改一下代码格式好吗?还有,你什么也得不到是什么意思?你期望得到什么?谢谢你,很抱歉代码的格式,我解决了这个问题。你仍然可以整理你的问题,并将答案分享给后代……事实上,我只是复制了控制台中FeatureContext.php文件下生成的“function iAmOn”方法。谢谢,太多了