使用Browserkit驱动程序

时间:2015-06-20 17:15:16

标签: composer-php silex mink

我似乎无法在Centos上安装带有Browserkit驱动程序的Mink。 我正在使用这些说明:https://github.com/minkphp/MinkBrowserKitDriver

我正在采取的步骤是:

  1. 在我的项目目录中添加名为composer.json的文件和内容:

    {     “要求”:{         “behat / mink”:“~1.5”,         “behat / mink-browserkit-driver”:“~1.1”     } }

  2. 使用以下命令。

  3.   

    $> curl -sS https://getcomposer.org/installer | PHP

         

    $> php composer.phar install

    1. 现在项目目录中有3个文件(composer.json,composer.lock,composer.phar)和一个文件夹(vendor)。我在哪里运行“使用示例”代码(如文档中那样)?
    2. 我尝试过添加require_once“vendor / autoload.php”;到我的test.php文件:

      <?php
      require_once "vendor/autoload.php";
      use Behat\Mink\Mink,
          Behat\Mink\Session,
          Behat\Mink\Driver\BrowserKitDriver;
      
      use Symfony\Component\HttpKernel\Client;
      
      $app  = require_once(__DIR__.'/app.php'); // Silex app
      
      $mink = new Mink(array(
          'silex' => new Session(new BrowserKitDriver(new Client($app))),
      ));
      
      $mink->getSession('silex')->getPage()->findLink('Chat')->click();
      

      但是得到app.php无法打开的致命错误。我也尝试将以下内容添加到test.php:

      require_once 'vendor/behat/mink-browserkit-driver/tests/app.php';
      

      任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

为了整理你的代码,你似乎缺少一些指南。在集成Behat和Mink之前,首先应该组织您的Silex项目。我的建议是让你看看官方Silex Skeleton project

之后你可以先安装behat,mink和你的驱动程序:

cd path/to/your/silex/project/root
composer require behat/behat:~2.5 behat/mink behat/mink-browserkit-driver

然后你可以initialize behat

bin/behat --init

然后在 behat.yml (在您的项目根目录下)配置您的mink驱动程序

default:
  extensions:
    Behat\MinkExtension\Extension:
      browserkit: ~
      base_url: http://my.dev.host

请注意,浏览器工具包无法执行JS,请记住(如果要在测试中执行JS,则应install another driver

之后,您可以开始在features目录中编写功能(应该为您创建),例如,如果您在 src / controllers.php 中有此控制器:

<?php
//...
$app->get('/hello', function () use ($app) {
  return new Response("Hello world!");
});

您可以编写该功能(在features / greeting.feature上):

Feature: Greetings from /hello page
  In order to say hello world
  As a visitor
  I need to go to the /hello page and see Hello world!

  Scenario: See Hello world!
    Given I am on "/hello"
    Then I should see "Hello world!"

答案 1 :(得分:0)

另一种选择是对silex使用完整的behat扩展名:https://github.com/tabbi89/Behat-Silex-Extension

您可以查看Mink和browserKit的集成如何在那里工作。