我正在尝试使用Behat在我的Symfony2应用上测试我的邮件,请按照此文档http://docs.behat.org/cookbook/using_the_profiler_with_minkbundle.html
我认为该文档不是最新的,我被卡住了。
我按照所有步骤进行了这个场景:
@mink:symfony2
Scenario: Registration Success
...
And I should get an email on "me@myproject.com" with:
"""
To finish validating your account - please visit
"""
但是我收到以下错误:
You need to tag the scenario with "@mink:symfony". Using the profiler is not supported by Behat\Symfony2Extension\Driver\KernelDriver
如果我使用@mink:symfony
代替@mink:symfony2
,我会:
[InvalidArgumentException]
Session "symfony" is not registered.
behat.yml
default:
context:
class: MyProject\BehatBundle\Features\Context\FeatureContext
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
bundle: MyProjectBehatBundle
Behat\MinkExtension\Extension:
base_url: 'http://myproject.local/app_test.php/'
goutte: ~
default_session: symfony2
我错过了什么?
答案 0 :(得分:1)
但是我收到以下错误:
You need to tag the scenario with "@mink:symfony". Using the profiler is not supported by Behat\Symfony2Extension\Driver\KernelDriver
此错误是由您从文档(http://docs.behat.org/en/v2.5/cookbook/using_the_profiler_with_minkbundle.html)复制的自己的方法getSymfonyProfile()
引起的,但您忘记了' 2'在例外消息中。
因此,您必须在开始时编写@mink:symfony2
而不是@mink:symfony
(并更正您的异常消息)。
然后我认为你应该:
确保您拥有允许您使用Behat访问Symfony2探查器的"behat/mink-browserkit-driver"
( MinkBrowserKitDriver )。
然后,在behat.yml
配置文件中,default_session
密钥必须引用现有会话,这意味着您必须声明Mink会话,如下所示:
extensions:
...
Behat\MinkExtension:
base_url: 'http://localhost:8000/app_test.php/'
sessions: # Sessions here
symfony2: # <-- HERE: Define the "symfony2" session KEY so you can write "@mink:symfony2"
symfony2: ~ # Then call BrowserKitDriver here
goutte: ~ # Your GoutteDriver
selenium2: ~ # Your Selenium2Driver
default_session: symfony2 # symfony2|goutte
javascript_session: selenium2 # For @javascript tags
最后,如前所述,您可以使用方案调用@mink:symfony2
。
现在应该可以了。
我很抱歉,因为我知道这是一个非常古老的主题,但也许这将有助于将来。
答案 1 :(得分:0)
要测试您可以使用MailCatcher的电子邮件,此工具会运行一个SMTP服务器,该服务器会捕获发送给它的任何邮件,以便在网络界面中显示。
看看here
答案 2 :(得分:0)
YAML文件对空间敏感。你忘了为behat扩展名放置空格:
default:
context:
class: MyProject\BehatBundle\Features\Context\FeatureContext
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
bundle: MyProjectBehatBundle
Behat\MinkExtension\Extension:
base_url: 'http://myproject.local/app_test.php/'
goutte: ~
default_session: symfony2
答案 3 :(得分:0)
您的驱动程序是Behat\Symfony2Extension\Driver\KernelDriver
的实例(根据错误),这是正确的。如果您从所引用的链接中复制了代码,那么您的驱动程序检查失败instanceof KernelDriver
,那么唯一的解释就是您错过了
use Behat\Symfony2Extension\Driver\KernelDriver;
来自您的上下文文件。
@mink:symfony2
一直是正确的标记for a long time,但我想在您复制文档时,文档中的代码段已经过时了。无论如何,这是一个红鲱鱼。