我正在爲使用rails 3.1的應用程序編寫一些自動化測試。我的一個測試失敗了,在失敗的時候,我希望能夠跳進滑軌控制檯並檢查事情的狀態。引發這個斷言,很多對象被創建,狀態被改變。在rails自動測試中,我怎樣產生控制檯?
測試套件運行結束後,測試數據庫被清除。
我記得有一些方法可以在測試文件或類似的東西中插入一個斷點,這會讓我進入控制檯。我做了大量的谷歌搜索,找不到它。
有人嗎?
我正在爲使用rails 3.1的應用程序編寫一些自動化測試。我的一個測試失敗了,在失敗的時候,我希望能夠跳進滑軌控制檯並檢查事情的狀態。引發這個斷言,很多對象被創建,狀態被改變。在rails自動測試中,我怎樣產生控制檯?
測試套件運行結束後,測試數據庫被清除。
我記得有一些方法可以在測試文件或類似的東西中插入一個斷點,這會讓我進入控制檯。我做了大量的谷歌搜索,找不到它。
有人嗎?
要求對您的Gemfile進行ruby-debug。
如果1.8:
gem 'ruby-debug'
如果1.9:
gem 'ruby-debug19', :require => 'ruby-debug'
請注意,如果你在1.9.3需要few tweaks。
最後,在你想調試的地方放一個debugger
聲明,然後運行你的測試。它應該彈出一個控制檯。正如Amadan所說,我還建議看一下pry。
呃,我是新來的stackoverflow,只是發現評論不允許換行符。我編輯了我仍然有問題的問題。提前致謝。 – 2011-12-20 06:03:26
1.9.3p0,rails 3.1.3 – 2011-12-20 06:09:55
嘗試在assert之前放置'debugger'。 「調試器」在斷言之前是 – 2011-12-20 06:11:36
使用Pry,並將binding.pry
作爲斷點。
您可能會喜歡this Railscast。
阿曼達的建議很簡單,但不要忽視它。我一直使用pry,我認爲比ruby-debug更容易。鏈接的鋼軌是一個很好的開始。 – HectorMalot 2011-12-21 07:14:04
誰是阿曼達? :P – Amadan 2011-12-21 08:51:37
我應該補充一點,我不是簡單的指「軌道控制檯測試」,我知道該怎麼做。我特別想在我的主張失敗的時候檢查國家。 – 2011-12-20 04:34:22