2012-06-25 45 views
0

我試圖測試貝哈特和水貂的捆綁,但我有一個問題函測試與貝哈特,貂皮和Symfony2的

  • 我安裝好我都推出了捆綁

  • :PHP應用程序/控制檯測試-E =貝哈特 - INIT @ AcmeDemoBundle,文件夾功能創建

  • 我essai.feature寫了一個方案

  • 我相繼推出:PHP應用程序/控制檯測試-E @貝哈特AcmeDemoBundle,我有這樣的結果

重點:測試 爲了測試 作爲一個開發者 我需要能夠提交聯繫表格

場景:導航到歡迎頁面#的src \ Acme的\ DemoBundle \功能\> essai.feature:6 鑑於我在 「/污物/條」

Scena里約熱內盧1(1未定義) 1步(1未定義) 0m0.243s

可以實現對不確定的步驟一步的定義與片斷論文:

/** * @鑑於/ ^我的「 ([^「] *)」$/ */ public function iAmOn($ argument1) { throw new PendingException(); }

  • 當我試圖執行的定義,我都推出 PHP應用程序/控制檯測試-E @貝哈特AcmeDemoBundle -dl

但是,我什麼都得不到!沒有被執行,該文件FeatureContext沒有被修改

請幫我找到一個解決方案

+0

您能修復代碼格式嗎?另外,這是什麼意思,你什麼都得不到?你期望得到什麼? –

+0

感謝你和代碼的格式對不起,我修復了這個問題 – symfounya

+0

你仍然可以清理你的問題,併爲後代分享答案... –

回答

0

如果一個步驟定義有任何錯誤,它可能會導致那些一個「什麼也沒發生」的情景。在開始實施它之前,最好從控制檯輸出中複製新的步驟def並將其粘貼到FeatureContext中。

1

它看起來像你還沒有告訴Behat在哪裏尋找你的主要上下文文件。你需要明確地加載FeatureContext.php在貝哈特配置文件:

# config/behat.yml 
default: 
autoload: [ %paths.base%/../features/bootstrap ] 
suites: 
    default: 
     paths: [ %paths.base%/../features ] 
     filters: 
     contexts: 
      - FeatureContext 

或場所FeatureContext.php正是貝哈特搜索默認情況下它。來自Behat的"context class requirements"部分文檔:

上下文類應該可被Behat發現和加載。那 意味着你應該以某種方式告訴Behat你的類文件。Behat自帶的PSR-0自動加載機帶有 ,默認自動加載 目錄是features/bootstrap。這就是爲什麼Behat很容易加載默認的FeatureContext 。您可以按照PSR-0慣例將您自己的類放置在 features/bootstrap下,或者您甚至可以通過使用behat.yml定義您自定義的自動加載文件夾。