2011-12-20 115 views
1

我正在爲使用rails 3.1的應用程序編寫一些自動化測試。我的一個測試失敗了,在失敗的時候,我希望能夠跳進滑軌控制檯並檢查事情的狀態。引發這個斷言,很多對象被創建,狀態被改變。在rails自動測試中,我怎樣產生控制檯?

測試套件運行結束後,測試數據庫被清除。

我記得有一些方法可以在測試文件或類似的東西中插入一個斷點,這會讓我進入控制檯。我做了大量的谷歌搜索,找不到它。

有人嗎?

+0

我應該補充一點,我不是簡單的指「軌道控制檯測試」,我知道該怎麼做。我特別想在我的主張失敗的時候檢查國家。 – 2011-12-20 04:34:22

回答

4

要求對您的Gemfile進行ruby-debug。

如果1.8:

gem 'ruby-debug'

如果1.9:

gem 'ruby-debug19', :require => 'ruby-debug'

請注意,如果你在1.9.3需要few tweaks

最後,在你想調試的地方放一個debugger聲明,然後運行你的測試。它應該彈出一個控制檯。正如Amadan所說,我還建議看一下pry

+0

呃,我是新來的stackoverflow,只是發現評論不允許換行符。我編輯了我仍然有問題的問題。提前致謝。 – 2011-12-20 06:03:26

+0

1.9.3p0,rails 3.1.3 – 2011-12-20 06:09:55

+0

嘗試在assert之前放置'debugger'。 「調試器」在斷言之前是 – 2011-12-20 06:11:36

2

使用Pry,並將binding.pry作爲斷點。

您可能會喜歡this Railscast

+1

阿曼達的建議很簡單,但不要忽視它。我一直使用pry,我認爲比ruby-debug更容易。鏈接的鋼軌是一個很好的開始。 – HectorMalot 2011-12-21 07:14:04

+1

誰是阿曼達? :P – Amadan 2011-12-21 08:51:37