我似乎无法在 Centos 上安装 Mink 和浏览器套件驱动程序。我正在使用以下说明:https://github.com/minkphp/MinkBrowserKitDriver
我正在采取的步骤是:
-
在我的项目目录中添加一个文件名为 composer.json 的文件和内容:
{ "要求":{ "behat/mink": "~1.5", "behat/mink-browserkit-driver": "~1.1" }}
-
使用以下命令。
$> curl -sS https://getcomposer.org/installer | php
$> php composer.phar 安装
- 现在项目目录中有 3 个文件(composer.json、composer.lock、composer.phar)和一个文件夹(vendor)。我从哪里运行"用法示例"代码(如文档所示)?
我尝试添加require_once"供应商/自动加载.php"; 到我的测试.php文件中:
<?php
require_once "vendor/autoload.php";
use BehatMinkMink,
BehatMinkSession,
BehatMinkDriverBrowserKitDriver;
use SymfonyComponentHttpKernelClient;
$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();
但是得到一个致命的错误,该应用程序.php无法打开。我还尝试添加以下内容进行测试.php:
require_once 'vendor/behat/mink-browserkit-driver/tests/app.php';
任何帮助将不胜感激:)
似乎您缺少一些准则来组织代码。在集成Behat和Mink之前,首先你应该组织你的Silex项目。我的建议是让你看看官方的Silex Skeleton项目。
之后,您可以从安装behat,mink和驱动程序开始:
cd path/to/your/silex/project/root
composer require behat/behat:~2.5 behat/mink behat/mink-browserkit-driver
然后你可以初始化 behat。
bin/behat --init
然后在 behat.yml 中配置您的 mink 驱动程序(在您的项目根目录上)
default:
extensions:
BehatMinkExtensionExtension:
browserkit: ~
base_url: http://my.dev.host
请注意,浏览器工具包无法执行JS,请记住(如果要在测试中执行JS,则应安装另一个驱动程序)
之后,您可以开始在功能目录上编写功能(behat应该为您创建它),例如,如果您在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!"
另一种选择是对 silex 使用完整的 behat 扩展: https://github.com/tabbi89/Behat-Silex-Extension
您可以在那里检查 Mink 和 browserKit 的集成是如何工作的。