2012-06-06 25 views
9

Tôi đã làm theo hướng dẫn này (và cài đặt mọi thứ thông qua nhà soạn nhạc): http://docs.behat.org/cookbook/behat_and_mink.html và tôi đang cố gắng làm việc Behat + Mink nhưng mỗi khi tôi thử và chạy bin/behat, tôi nhận được lỗi sau:Đấu tranh để có Mink làm việc với Behat

PHP Fatal error: Call to a member function getSession() on a non-object in vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext.php on line 80 

Đó dòng mã là:

return $this->getMink()->getSession($name); 

vì vậy, đối với một số lý do thuộc tính chồn rỗng nhưng tôi đã không biết tại sao.

tập tin .feature của tôi là chính xác giống như một trong những hướng dẫn, lớp FeatureContext cũng là từ hướng dẫn:

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 
{ 

} 

và nhà cung cấp/behat/chồn/file behat.yml tôi bao gồm:

context: 
    extensions: 
    Behat\MinkExtension\Extension: 
     base_url: 'http://en.wikipedia.org/' 
     goutte: ~ 
     selenium2: ~ 

Tôi cũng đã cố gắng làm cho lớp của mình mở rộng BehatContext và sau đó gọi useContext nhưng điều đó mang lại cho tôi cùng một lỗi. Bản thân Behat dường như làm việc nó chỉ là bất cứ điều gì với Mink tạo ra lỗi nghiêm trọng đó và tôi không có ý tưởng làm thế nào để sửa chữa nó.

Trả lời

8

Điều này là do bạn nên sao chép vendor/behat/behat/behat.yml.dist tệp thành your/project/root/behat.yml, thay vì chỉnh sửa tệp trong thư mục của nhà cung cấp và thêm extesions vào phần default.

Và đây là những gì nó trông giống như:

default: 
    extensions: 
    Behat\MinkExtension\Extension: 
     base_url: http://lunch-time/app_dev.php 
     goutte: ~ 
     selenium2: ~ 

    paths: 
    features: features 
    bootstrap: features/bootstrap 

annotations: 
    paths: 
    features: features/annotations 

closures: 
    paths: 
    features: features/closures 
+0

Xem thêm http://stackoverflow.com/a/28173700/425204 để sửa các lỗi bổ sung cho lỗi này – spiritoo

0

tôi đã phải đối mặt với một vấn đề tương tự. Chúng ta cần nói với Symfony để khởi tạo đối tượng.

Tôi đã sửa lỗi sau khi thêm theo mặc định> suites> my_suite.

contexts: [Behat\MinkExtension\Context\MinkContext] 

Đây là cách behat.yml mới của tôi trông như thế nào.

default: 
    suites: 
     my_suite: 
      type: symfony_bundle 
      bundle: AcmeProjectManagerBundle 
      contexts: [Behat\MinkExtension\Context\MinkContext] 
extensions: 
    Behat\Symfony2Extension: ~ 
    Behat\MinkExtension: 
     base_url: http://en.wikipedia.org 
     goutte: ~ 
     selenium2: ~ 
     sessions: 
      default: 
       symfony2: ~