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

时间:2012-06-25 08:25:13

标签: symfony behat mink

我正在尝试测试捆绑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 / Article”

     

场景1(1未定义)     1步(1未定义)     0m0.243s

     

您可以使用片段论文实现未定义步骤的步骤定义:

     

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

  • 当我尝试实现这些定义时,我已经启动了 php app / console test-e @ Behat AcmeDemoBundle -dl

但是,我什么都没得到!没有执行任何内容并且文件FeatureContext未被修改

请帮我找一个解决方案

2 个答案:

答案 0 :(得分:1)

看起来你没有告诉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文档的"context class requirements"部分:

  

上下文类应该是Behat可以发现和加载的。那   意味着你应该以某种方式告诉Behat你的类文件。 Behat来了   使用开箱即用的PSR-0自动加载器和默认的自动加载   目录是功能/ bootstrap。这就是默认的FeatureContext的原因   Behat很容易加载。您可以在下面放置自己的课程   功能/ bootstrap遵循PSR-0约定,你甚至可以   通过behat.yml定义您自己的自定义自动加载文件夹。

答案 1 :(得分:0)

如果步骤定义有任何错误,则可能导致其中一个“没有发生”的情况。最好从控制台输出中复制新的步骤def并将其粘贴到FeatureContext中,然后再开始实现它。