如何在Behat中选择一个驱动程序?

时间:2013-08-14 18:54:47

标签: php behat sahi goutte

我安装了Goutte和Sahi。我怎么知道我默认使用的是什么驱动程序?

另外如何从一个驱动程序更改为另一个驱动程序?

谢谢

 public function iAmOnHomepage()
    {

      // $this->getSession()->visit("/");
   //     $driver = new \Behat\Mink\Driver\GoutteDriver();
    //    $session = new \Behat\Mink\Session($driver);

        // start session:
      //  $session->start();


     //   $this->getSession($session);
        $session = $this->getSession();
        $session->visit($this->locatePath('/'));

        $link = $session->getPage()->findLink('I am a Physician');

       if (null === $link) {
          throw new \LogicException("Home Page Not Loaded:\n");   
       }
    }

我的behat.yml文件:

default:
  formatter:
    name: progress
  extensions:
    Behat\Symfony2Extension\Extension:
      mink_driver: true
      kernel:
        env: test
        debug: true
    Behat\MinkExtension\Extension:
      sahi: ~
      goutte: ~
      base_url: 'http://local.referral.com'
      default_session: symfony2

2 个答案:

答案 0 :(得分:2)

您必须在“Behat \ MinkExtension \ Extension”部分中定义“default_session:goutte”。 然后定义sahi_session:sahi

现在您可以在功能文件中切换会话,如下所示:

Feature: Category
  Add Category, change Category

  @sahi
  Scenario: Change Category, add new Category
  ....

答案 1 :(得分:1)

我希望能够在开发时从CLI切换方法。

  • 大部分时间都假设goutte(除非测试本身被标记为 更喜欢@javascript)
  • 但是要知道问题出在哪里,我想在屏幕上看到非js的操作。

我的behat.yml:

default:
  suites:
    default:
      paths:
        - %paths.base%/features
      contexts:
        - Drupal\DrupalExtension\Context\DrupalContext
        - Drupal\DrupalExtension\Context\MinkContext
  extensions:
    Behat\MinkExtension:
      goutte: ~
      selenium2: ~

chrome:
  extensions:
    Behat\MinkExtension:
      browser_name: chrome
      default_session: 'selenium2'

现在,跑步' behat'将主要使用goutte,但如果我选择运行

behat -p chrome

我得到了相同内容的浏览器版本。

behat版本3.1.0 (我看到很多文档说这是" Behat \ MinkExtension \ Extension" - 但我发现它是" Behat \ MinkExtension" - 这可能是一个版本的东西。)