【问题标题】:functionals tests with behat, mink and symfony2使用 behat、mink 和 symfony2 进行功能测试
【发布时间】:2012-06-25 08:25:13
【问题描述】:

我正在尝试测试捆绑包 Behat 和 Mink,但我遇到了问题

  • 我很好地安装了捆绑包

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

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

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

功能:测试 为了测试 作为开发者 我需要能够提交联系表

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

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

您可以使用 sn-ps 论文为未定义的步骤实现步骤定义:

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

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

但是,我什么也得不到!什么都没有执行,文件 FeatureContext 也没有被修改

请帮我找到解决办法

【问题讨论】:

  • 您能修复代码格式吗?还有,你什么都得不到是什么意思?你期望得到什么?
  • 谢谢你,抱歉代码的格式,我解决了这个问题
  • 您仍然可以清理您的问题并为后代分享答案......
  • 其实我只是把控制台生成的方法“function iAmOn”复制到FeatureContext.php文件下,非常感谢

标签: symfony behat mink


【解决方案1】:

您似乎没有告诉 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 你的类文件。贝哈特来了 带有开箱即用的 PSR-0 自动加载器和默认自动加载器 目录是功能/引导。这就是为什么默认的 FeatureContext 很容易被 Behat 加载。您可以将自己的课程放在 功能/引导遵循 PSR-0 约定,或者您甚至可以 通过 behat.yml 定义您自己的自定义自动加载文件夹。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      相关资源
      最近更新 更多