behat& symfony2中的mink:@javascript标记问题

时间:2014-05-12 12:56:03

标签: javascript symfony behat mink

我在尝试在symfony项目中使用Behat和mink时面临一个问题(sf2.4)。

情况:

我刚开始测试syhat for symfony2项目,看起来很棒。我也可以使用mink,因为我的主要项目目前是web项目。因此,我遵循官方文档的教程:official doc

问题:

在使用selenium测试“在浏览器中”解决方案时,我下载jar,启动它,然后通过另一个cmd行窗口运行:

php bin/behat features/search.feature

并出现错误:

 [Behat\Testwork\ServiceContainer\Exception\ProcessingException]           
 The @javascript tag cannot be used without enabling a javascript session 

编辑:featureContext.php看起来像这样

<?php
#features/FeatureContext.php

use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;

use Behat\MinkExtension\Context\MinkContext;

/**
 * Behat context class.
*/
//class FeatureContext implements SnippetAcceptingContext
class FeatureContext extends MinkContext
{
    /**
     * Initializes context.
     *
     * Every scenario gets it's own context object.
     * You can also pass arbitrary arguments to the context constructor through behat.yml.
     */
    public function __construct()
    {
    }
}

解决方案:

我不太确定1)这个错误的意思(javascript会话?)也不是2)如何解决它。我无法在网上获得有关原因和修复的适当文档。

任何提示都非常赞赏!

EDIT2: 一旦这个部分通过解决#behat.yml中的拼写错误,或者通过关注behat3的doc查看jakub的帖子(我在本帖时使用的那篇文章)来解决,我有第二个错误:

Install MinkSelenium2Driver in order to use selenium2 driver.

由于错误的作曲家设置,这个错误最明显。只需添加:

"behat/mink-selenium2-driver": "*"

解决了第二个问题。它的工作原理!

亲切的问候,

1 个答案:

答案 0 :(得分:7)

您需要执行消息告诉您的操作并配置javascript会话;)

default:
  suites:
    first:
      mink_session: default
      mink_javascript_session: selenium2
  extensions:
    Behat\MinkExtension:
      base_url:  'http://example.com'
      sessions:
        default:
          goutte: ~
        selenium2:
          selenium2: ~

您正在阅读Behat v2中的文档但您正在使用Behat v3。

v3的文档尚未在behat.org上。现在,请在此处阅读:http://behat.readthedocs.org/en/latest/

对于MinkExtension,请转到此处:https://github.com/Behat/MinkExtension/blob/master/doc/index.rst

文档应尽快发布到behat.org(希望)。