我正在尝试测试捆绑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(); }
但是,我什么都没得到!没有执行任何内容并且文件FeatureContext未被修改
请帮我找一个解决方案
答案 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中,然后再开始实现它。