我使用Codeception與REST和Laravel模塊。當測試爲紅色時,Codeception不提供異常信息
當我運行vendor/bin/codeception run
並且由於應用程序中存在異常而導致測試爲紅色時,命令行中未提供任何信息。
所以我知道東西是錯的,但不知道究竟是什麼是錯的。更
一點點的細節:
1)當試驗期望不被滿足,正被顯示的錯誤信息就好(例如我期望的結果是JSON但HTML已被代替返回)
2)但是,例如,如果我嘗試將某些內容插入到不存在的數據庫字段中,我只會在命令行中獲取FAIL,而沒有關於失敗原因的信息。
請注意,此類錯誤是可捕獲的異常,而不是致命錯誤,所以我不明白爲什麼Codeception不能顯示錯誤消息。
要找到什麼確切的問題,我有兩個選擇:
1)try-catch塊裹測試(所以我抓住和用手工調試一切) 2)請使用瀏覽器通過手的請求並看到輸出
顯然,這兩個「解決方案」是不可接受的。
我錯過了什麼,是否有這個問題的一個很好的解決方案?
謝謝!
嗨安東尼奧。感謝您的答覆。 但這不違反TDD的整體思路嗎?如果測試沒有提供關於如何使它們變綠的信息,我如何在代碼之前編寫測試? 順便說一句,數據庫異常的例子不是一個致命的錯誤(我甚至可以在我的測試中手工捕獲這個異常) – 2014-08-28 19:56:12
是的,但如果你違反操作系統(內存,磁盤,文件權限,web服務器配置......),你的工具無法爲你做任何事情,不幸的是,這些「規則」並不是每一次都有效。 :) – 2014-08-28 19:59:13