2013-07-12 82 views
2

我使用windows7的上貝哈特..它是今天的奮鬥我的第四天......我寫了一個功能貝哈特未定義的一步,雖然它應該被定義

#homepage.feature 

Feature: To test the Home page loads successfully. 

Scenario: 
    Given I am in a session 
    When I request the page "index.php" 
    Then I should get some content 

和定義的步驟

/** 
* @Given /^I am in a session$/ 
*/ 
public function iAmInASession() { 
    $driver = new \Behat\Mink\Driver\Selenium2Driver(
      'firefox', 'base_url' 
    ); 

    global $session; 
    $session = new \Behat\Mink\Session($driver); 

    // start session: 
    $session->start(); 

} 

/** 
* @When /^I request the page "([^"]*)"$/ 
*/ 
public function iRequestThePage($page) 
{ 
    global $session; 

    $session->visit($page); 


} 

/** 
* @Then /^I should get some content$/ 
*/ 
public function iShouldGetSomeContent() 
{ 
    global $session; 
    if($session->getPage()->getContent()) 
     echo $session->getPage()->getContent(); 
    else 
     throw new Exception("The page couln't load successfully!"); 
} 

它也向我展示了147個未定義的場景和878個未定義的步驟,而某些步驟在FeatureContext.php中定義了一些步驟

請幫忙!!!

+0

你確定你執行正確的方案嗎? – DevZer0

+0

謝謝,我已經解決了這個問題:) – Taz

回答

1

對不起,我犯了一些錯誤....我沒有創建功能目錄,而是將我的功能添加到供應商\ behat \ behat \ features目錄,並將步驟定義添加到供應商\貝哈特\貝哈特\功能\引導\ FeatureContext.php

要在命令提示符下

貝哈特\ BIN \鍵入 供應商\貝哈特\貝哈特--init它的工作,我在項目的根目錄中創建功能目錄

所有功能應該駐留在此目錄中,並且步驟應該放在根目錄\ features \ bootstrap \ FeatureContext.php中

進一步uri應該是'http://'.localhost/Project/.$page在$ session-> visit()

希望這可以幫助別人!

+1

爲了將來的參考請記住,你不應該觸摸供應商目錄中的任何東西。此目錄由其他項目的代碼組成,因此如果您再次運行「Composer更新」或「作曲家安裝」,您所做的任何更改都將被刪除。如果您需要修改以修復bug或添加無法作爲插件完成的功能,請在GitHub中分叉repo,然後使用composer inline aliasing將它視爲repo分叉,就好像它是repo分叉一樣。這允許您在等待代碼合併到項目中時使用代碼修復/升級。 – pthurmond

相關問題