0

私はSymfony2.0.15でcomposerを使用しており、最新のBehat2.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パッケージに依存しており、Symfony2.0では利用できないためです。私が間違っているなら、私を訂正してください。

これが私のbehat.yml

default:
    formatter:
      parameters:
        paths: false
     context:
      class: 'Site\PublicBundle\Features\Context\FeatureContext'
      parameters:
        base_url:  'http://test-anton.site.com'
    extensions:
      Behat\Symfony2Extension\Extension:
        mink_driver: true
        bundle: 'PublicBundle'
        kernel:
          env: test
          debug: true
      Behat\MinkExtension\Extension:
        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"なく動作します。


最終的な答えはBehat\CommonContexts\WebApiContext、Behat2.4と互換性がないということです。

4

1 に答える 1

1

ばかげた質問かもしれませんが、痛風を使いますか?最近同様のアップデートを行いましたが、必要なのはmink-browserkit-driverだけでした。

痛風が2.1に依存している理由がわかりません。また、2.0で使用するのは危険かもしれません。本当に必要な場合は、composer.jsonでgoutteのカスタムリポジトリを定義してみてください(そしてSymfonyの要件について嘘をつきます)。

アップデート

エラーメッセージに「メンバー関数getUri()の呼び出し」と表示されていることに注意してください。getCurrentUri()に関連しています:

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

これは、クライアントが存在するが、getRequest()がnullを返すことを意味します。これは、リクエストがまだ行われていないことを示しています。

URLにアクセスする前にリクエストを行いましたか?

Goutteをインストールしても問題は解決しません(まったく必要ありません)。

于 2012-06-28T08:09:21.140 に答える