0

我正在尝试测试捆绑包 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 Given I on "/crud/Article"

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

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

     / ** * @ Given / ^ 我在 "([^"] *) "$ / * / public function iAmOn($ argument1) { throw new PendingException(); }

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

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

请帮我找到解决方案

4

2 回答 2

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 文档的“上下文类要求”部分:

上下文类应该可以被 Behat 发现和加载。这意味着你应该以某种方式告诉 Behat 你的类文件。Behat 带有一个开箱即用的 PSR-0 自动加载器,默认的自动加载目录是 features/bootstrap。这就是 Behat 如此轻松地加载默认 FeatureContext 的原因。您可以按照 PSR-0 约定将自己的类放在 features/bootstrap 下,甚至可以通过 behat.yml 定义自己的自定义自动加载文件夹。

于 2015-07-21T18:01:52.457 回答
0

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

于 2013-01-08T03:17:36.787 回答