当前位置: 首页 > 知识库问答 >
问题:

behat+mink的问题

秦新立
2023-03-14

我正在尝试安装behat+mink(在kohana框架上,而不是symfony,我将behat放入modules文件夹--我写这个只是以防万一,但我猜这不是导致我的问题的原因)。

我拥有与behat文档中相同的search.feature文件,我将features/bootstrap类更改为:

<?php

use Behat\Behat\Context\ClosuredContextInterface,
    Behat\Behat\Context\TranslatedContextInterface,
    Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;     

use Behat\MinkExtension\Context\MinkContext;

/**
 * Features context.
 */
class FeatureContext extends MinkContext 
{

}

当我在CLI中键入“Behat”时,我会得到以下错误:在第80行调用....RawminkContext.php中的非对象的成员函数getSession()。

default:
  extensions:
    Behat\MinkExtension\Extension:
      base_url: http://wikipedia.org
      goutte: ~
      selenium2: ~

  paths:
    features:  features
    bootstrap: features/bootstrap

annotations:
  paths:
    features: features/annotations

closures:
  paths:
    features: features/closures

有人能告诉我什么是正确的设置方式吗?也许这里有人也有问题...

顺便说一句。当我使用goutte安装behat时,只使用selenium2驱动程序,我得到的错误是goutte没有安装。但是当我用goutte安装它时,我发现没有fabpot/goutte目录(或者fapbot/,我不记得了,但我猜是第一个:D),所以我删除了所有内容,并用下面的composer.json文件重新安装了behat,也许这也与这个错误有关:

{
    "name":         "behat/mink-browserkit-driver",
    "description":  "Symfony2 BrowserKit driver for Mink framework",
    "keywords":     ["Symfony2", "testing", "browser"],
    "homepage":     "http://mink.behat.org/",
    "type":         "mink-driver",
    "license":      "MIT",

    "authors": [
        {
            "name":      "Konstantin Kudryashov",
            "email":     "ever.zet@gmail.com",
            "homepage":  "http://everzet.com"
        }
    ],

    "require": {
        "php":                  ">=5.3.1",
        "symfony/browser-kit":  ">=2.0.0,<2.2.0",
        "symfony/dom-crawler":  ">=2.0.0,<2.2.0",
        "behat/behat": "2.4.*@stable",
        "behat/mink": "1.4.*@stable",
        "behat/mink-extension": "*",
        "behat/mink-goutte-driver": "*",
        "behat/mink-selenium2-driver": "*"
    },

    "minimum-stability": "dev",

    "autoload": {
        "psr-0": {
            "Behat\\Mink\\Driver": "src/"
        }
    },

    "config": {
        "bin-dir": "bin/"
    }
}

共有1个答案

章飞章
2023-03-14

推荐的安装Behat+Mink的任何东西,而不仅仅是Kohana,是通过Composer。有关说明,请参阅http://docs.behat.org/quick_intro.html。composer.json中的autoload子句不是必需的。

至于你的模块尝试,KO3.2还没有能力加载PSR-0,所以将它放入模块将不允许它被正确加载。

不要随机复制您的behat.yml-您只需要在您的项目根目录中复制一个。如果您担心,可以通过bin/behat-c/path/to/behat.yml显式加载您的behat.yml

将composer.json正确设置为具有mink依赖项后,您就可以执行bin/behat-dl来验证mink是否工作。

然后,您可以执行bin/behat--init来创建您的特性文件结构。

这将创建一个覆盖Mink定义的FeatureContext,因此添加

 require_once __DIR__.'/../../vendor/autoload.php';
 class FeatureContext extends Behat\MinkExtension\Context\MinkContext
 类似资料:
  • 我使用Selenium进行自动浏览器测试已经有相当一段时间了。除了Firefox,我从来没有想过如何让它在其他任何东西上运行。好吧,现在FireFox将启动,但不会被拉到前面,它只是坐在那里,什么也不做。我觉得这是因为FireFox更新了自己。 我在运行MacOS塞拉。我已经安装并启用了WebDriver 2.48扩展到Safari。 我已经下载并尝试了selenium-server-standa

  • 我想知道是否有一种可能的方法来解析动态值,特别是通过使用behat/mink测试来解析,因为它正在运行具有Selenium2功能的Yml配置文件 文件使用扩展文件,文件中包含Selenium 2 Capabilities参数。 在中:https://github.com/behat/minkextension/blob/2.0/src/behat/minkextension/extension.p

  • Mink 是开源的 PHP 浏览器/控制器 模拟测试工具。Mink 可以模拟 Web 应用和浏览器之间的交互,测试 Web 应用的行为是否正确。 <?phpuse Behat\Mink\Mink,    Behat\Mink\Session,    Behat\Mink\Driver\GoutteDriver,    Behat\Mink\Driver\Goutte\Client as Goutt

  • 我想使用我的selenium2网格在几个浏览器上运行我的behat测试。我已经设法使它们以不同的behat.yml配置文件在每个环境/浏览器的基础上运行,但我希望配置一个behat配置文件来触发在我的所有节点上的运行。 我的behat.yml配置文件如下所示: 浏览器字段中的数组,config parser不喜欢 具有多个名称的字符串,认为我有一个以字符串sigh命名的浏览器 为我的seleniu

  • Behat 是个行为驱动的开发(BDD)框架,可以测试业务期望,允许用户编写便于人们阅读的故事驱动代码,描述该应用应该怎样工作。任何人都能快速简单的掌握它的使用方法。

  • 情况是这样的:我正在使用Behat在Symfony上运行验收测试。为此,我使用Geckodriver启动一个Selenium实例,然后运行Behat。本地的一切都很好(很好!)。 但是当它在Github操作上运行时,它会失败。我已经检查了版本,我甚至版本化了gecko驱动程序和selenium.jar文件来使用完全相同的(尽管它们已经存在于github操作上),但是没有什么工作。 所以我正在寻找任