1

Behat と Mink を使用して symfony 2.1 プロジェクトをテストしようとしています。

私のFeatureContext.php:

<?php 

use Behat\Behat\Context\ClosuredContextInterface,
    Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException,
    Behat\Behat\Context\Step;

use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;

use Behat\MinkExtension\Context\MinkContext;

//
// Require 3rd-party libraries here:
//
//   require_once 'PHPUnit/Autoload.php';
//   require_once 'PHPUnit/Framework/Assert/Functions.php';
//

/**
 * Features context.
 */
class FeatureContext extends Behat\MinkExtension\Context\MinkContext {

    /**
     * Initializes context.
     * Every scenario gets it's own context object.
     *
     * @param array $parameters context parameters (set them up through behat.yml)
     */
    public function __construct(array $parameters)
    {
        // Initialize your context here
    }

//
// Place your definition and hook methods here:
//
//    /**
//     * @Given /^I have done something with "([^"]*)"$/
//     */
//    public function iHaveDoneSomethingWith($argument)
//    {
//        doSomethingWith($argument);
//    }
//
}

composer.json

     "behat/behat": ">=2.2.2",
    "behat/mink":  ">=1.3.2",
    "behat/symfony2-extension":     "*",
    "behat/mink-extension":         "*",
    "behat/mink-browserkit-driver": "*",
    "behat/mink-selenium-driver":   "*"

アプリ/構成/behat.yml

default:
  extensions:
    Behat\Symfony2Extension\Extension:
      mink_driver: true
      kernel:
        env: test
        debug: true
    Behat\MinkExtension\Extension:
      base_url: 'http://localhost:8080/app_test.php/'
      default_session: symfony2
      javascript_session: selenium
      selenium:
        host: 127.0.0.1
        port: 4444

./bin/behat を実行すると、次のようになります。

機能: ログイン ユーザーとしてログインするには、ユーザー名とパスワードを確認できる必要があります

シナリオ: ログイン ページへのリンク # features/login.feature:7 PHP 致命的なエラー: vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext の非オブジェクトでメンバー関数 getSession() を呼び出します。 php 81行目

致命的なエラー: 81 行目の vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext.php の非オブジェクトに対するメンバー関数 getSession() の呼び出し

何か案が?

v。

4

2 に答える 2

0

@Stuart と @spiritoo の回答に感謝します

まず、behat.yml を /config からプロジェクト ルートに移動します。

次に、behat.yml のコンテンツ:

default:
suites:
    my_suite:
        contexts:
            - FeatureContext
extensions:
    Behat\Symfony2Extension: ~
    Behat\MinkExtension:
        base_url: http://en.wikipedia.org
        goutte: ~
        sessions:
            default:
                symfony2: ~

最後に、プロジェクト ルートで次を実行します。

vendor/bin/behat features/{YOUR TEST FILE HERE}

私の composer.json ファイル:


"require-dev": {
    "behat/behat": "^3.3",
    "behat/mink": "^1.7",
    "behat/mink-extension": "^2.2",
    "behat/mink-browserkit-driver": "^1.3",
    "behat/mink-goutte-driver": "^1.2",
    "behat/symfony2-extension": "^2.1",
    "behat/mink-selenium2-driver": "^1.3"
  }
于 2017-04-20T01:28:25.730 に答える