2016-02-20 34 views
1

我想在yii2高級應用程序上運行驗收測試。開箱驗收測試失敗。我將從第一個問題開始:我認爲路線是錯誤的,我不知道要在哪裏尋找解決方法。關於頁面的錯誤例如說:如何修復驗收測試路線?

Can't be on page "/frontend/web/index-test.php/site/about": 
"/frontend/web/index-test.php/site/signup" 

它從哪裏得到此路線?當然,那裏沒有頁面,那條路線是垃圾。我試圖把它放在瀏覽器中..當然沒有。我很樂意介紹測試課,看看發生了什麼,但我也無法弄清楚。任何人有這個想法?我想如果我能夠正確地獲得路線,至少我可以到達某個地方。

回答

1

更新答案
確保從項目根目錄運行php -S localhost:8080,而不是從測試目錄!

我剛剛嘗試過,並得到了與您一樣的錯誤。


原來的答覆

開箱即用的,你需要做兩件事情的測試才能運行。

yii2-app-advanced tests readme

  1. 安裝全球Codeception。
  2. 創建測試分貝。
  3. 轉到tests/codeception/config,並期待在/編輯config.php(見下文)
  4. 運行遷移:codeception/bin/yii migrate
  5. 火了一個網絡服務器:在你要測試tests/codeceptionphp -S localhost:8080
  6. 導航到每個目錄 - 像frontend
  7. 運行codecept build
  8. 運行codecept run

它確實運行,並且它確實可以開箱即用 - 只要您沒有更改任何代碼。 :)
如果你確實改變了一些代碼,那麼測試就會中斷,你將不得不修復它。


tests/codeception/config/config.php

'components' => [ 
    'db' => [ 
     'dsn' => 'mysql:host=localhost;dbname=name_of_test_db', 
    ], 

編輯:
這條路看起來好像沒什麼問題,順便說一句。我想這個問題是,在進行測試之前你還沒有啓動一個網絡服務器。

您可能需要解決您的文檔根目錄,如下所述:Installation Guide

+0

我已經做了所有上述當然的,但是,感謝您抽出寶貴的時間再看一遍吧。我有一個不同的部分是我使用了不同的Web服務器,我在這臺機器上使用了MAMP,所以我所做的就是將PhpBrowser url設置爲我用於此項目的主機名。這是錯誤的部分嗎?無論如何,這就是爲什麼我「試圖找出這個路線問題」的原因。它是否與常規應用程序不使用相同的路線? – dataskills

+0

它使用與常規應用程序相同的路線,除了它使用'index-test.php'而不是'index.php' :) – jacmoe

+0

嘗試並撤銷phpbrowser的設置 - 可能是這樣。我只是單獨離開那個環境,因爲我發現它弄糟了。 – jacmoe