首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Behat/Mink上测试邮件的Symfony2分析器

在Behat/Mink上测试邮件的Symfony2分析器
EN

Stack Overflow用户
提问于 2013-12-26 09:50:40
回答 4查看 1.8K关注 0票数 3

我正试图使用Behat在我的Symfony2应用程序上测试我的邮件,跟踪这个minkbundle.html文档

我想医生不是最新的,我被困住了。

我遵循了所有的步骤,得到了这样的场景:

代码语言:javascript
运行
复制
@mink:symfony2
Scenario: Registration Success
  ...
  And I should get an email on "me@myproject.com" with:
  """
  To finish validating your account - please visit
  """

但我得到了以下错误:

代码语言:javascript
运行
复制
You need to tag the scenario with "@mink:symfony". Using the profiler is not supported by Behat\Symfony2Extension\Driver\KernelDriver

如果我使用@mink:symfony而不是@mink:symfony2,我会得到:

代码语言:javascript
运行
复制
 [InvalidArgumentException]            
  Session "symfony" is not registered.  

behat.yml

代码语言:javascript
运行
复制
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

我错过了什么?

EN

回答 4

Stack Overflow用户

发布于 2016-04-26 16:01:42

但我得到了以下错误: You need to tag the scenario with "@mink:symfony". Using the profiler is not supported by Behat\Symfony2Extension\Driver\KernelDriver

这个错误是由于您自己的方法getSymfonyProfile(),您从doc ( minkbundle.html )复制的,但是在异常的消息中忘记了'2‘。

因此,您必须编写@mink:symfony2而不是@mink:symfony,就像在开始时那样(并更正异常消息)。

那我觉得你应该:

  1. 确保您拥有允许使用Behat访问(MinkBrowserKitDriver) "behat/mink-browserkit-driver"分析器的"behat/mink-browserkit-driver"
  2. 然后,在behat.yml配置文件中,default_session键必须引用现有会话,这意味着您必须声明Mink会话,如下所示: 延期:.Behat\MinkExtension: base_url:'test.php/‘会话:# session so symfony2:# <--此处:定义"symfony2“会话键,以便您可以编写”@mink:symfony2 2“symfony2:~#然后在这里调用BrowserKitDriver goutte:~# Your GoutteDriver selenium2::~#您的Selenium2Driver default_session: symfony2 #symfony2 2 x_goutte javascript_session: selenium2 # For @javascript标记
  3. 最后,您可以使用场景调用@mink:symfony2,如前所述。现在该起作用了。

我很抱歉,因为我知道这是一个很古老的话题,但也许这会在未来有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-12-26 10:50:42

要测试您可以使用MailCatcher的电子邮件,此工具运行SMTP服务器,该服务器捕获发送给它的任何消息,以便在web界面中显示。

看一看这里

票数 0
EN

Stack Overflow用户

发布于 2014-02-25 07:54:37

YAML文件对空间敏感。您忘记为behat扩展放置空间:

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20782639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档