水貂-痛风-司机。无法在 Symfony 2.0 上安装 fabpot/goutte



我正在使用Symfony 2.0.15的作曲家并迁移到最新的Behat 2.4。这是我的composer.json

"require-dev": {
    "behat/behat": "2.4@stable",
    "behat/mink-extension": "*",
    "behat/symfony2-extension": "*",
    "behat/mink-browserkit-driver":  "*",
    "behat/mink-goutte-driver":  "dev-master",
    "behat/common-contexts": "*",
    "kriswallsmith/buzz": ">=0.5.0"
}

我跑:php composer.phar update --dev

并且有一个错误:

Your requirements could not be solved to an installable set of packages.
Problem 1
- Installation request for behat/mink-goutte-driver dev-master -> satisfiable by behat/mink-goutte-driver dev-master.
- don't install fabpot/goutte 1.0.x-dev|install fabpot/goutte dev-master
- behat/mink-goutte-driver dev-master requires fabpot/goutte 1.0.* -> satisfiable by fabpot/goutte 1.0.x-dev.
- Conclusion: remove symfony/symfony v2.0.15
- fabpot/goutte dev-master requires symfony/dom-crawler 2.1.* -> satisfiable by symfony/symfony 2.1.x-dev, symfony/dom-crawler v2.1.0-BETA1, symfony/dom-crawler 2.1.x-dev, symfony/symfony v2.1.0-BETA1.
- Can only install one of: symfony/symfony v2.0.15, symfony/symfony 2.1.x-dev.
- Can only install one of: symfony/symfony v2.1.0-BETA1, symfony/symfony v2.0.15.
- don't install symfony/symfony v2.0.15|don't install symfony/dom-crawler v2.1.0-BETA1
- don't install symfony/dom-crawler 2.1.x-dev|don't install symfony/symfony v2.0.15
- Installation request for symfony/symfony == 2.0.15.0 -> satisfiable by symfony/symfony v2.0.15.

如果我正确理解错误,那是因为fabpot/goutte软件包依赖于Symfony 2.1软件包,并且不适用于Symfony 2.0。如果我错了,请纠正我。

这是我behat.yml

default:
    formatter:
      parameters:
        paths: false
     context:
      class: 'SitePublicBundleFeaturesContextFeatureContext'
      parameters:
        base_url:  'http://test-anton.site.com'
    extensions:
      BehatSymfony2ExtensionExtension:
        mink_driver: true
        bundle: 'PublicBundle'
        kernel:
          env: test
          debug: true
      BehatMinkExtensionExtension:
        default_session: symfony2
        base_url:  'http://test-anton.site.com'

这是我失败场景的示例:

Scenario: User can view homepage
    When I go to "/"
    Then the response code should be 200

"When I go to" - 是 MinkContext 步骤,但"Then the response code should be 200" - 是 Behat\CommonContexts\WebApiContext 中的一个步骤。当我只使用 MinkContext 的步骤时 - "Then the response status code should be 200"它工作得很好。


最终的答案是BehatCommonContextsWebApiContext与Behat 2.4不兼容。

可能是一个愚蠢的问题,但你使用痛风吗?我最近经历了类似的更新,我只需要貂浏览器工具包驱动程序。

我不确定为什么 goutte 依赖于 2.1,将其与 2.0 一起使用可能会有风险。如果你真的需要它,试着在你的composer.json中为goutte定义一个自定义的存储库(并在Symfony上撒谎)。

更新

请注意,错误消息显示"调用成员函数 getUri()"。它与getCurrentUri()有关:

public function getCurrentUrl()
{
     return $this->client->getRequest()->getUri();
}

这意味着客户端在那里,但getRequest()返回null。这表明尚未提出请求。

您是否在访问其 URL 之前提出了请求?

安装 Goutte 不会解决您的问题(您根本不需要它)。

相关内容

  • 没有找到相关文章

最新更新