2011-07-30 46 views

回答

26

馬克建議的posix信號不再用於與守衛進行交互。請參閱README中標題爲「交互」的部分,瞭解新的交互方式。

要觸發每個警衛的run_all方法,只需在警衛終端中按回車即可。要觸發rspec的run_all方法,請鍵入rspec並按回車。

+0

當我從Rails應用程序中對規範或代碼進行任何更改時,它會觸發其run_all方法嗎? – mfq

4

大概是最容易做的事情是use Spork,然後簡化您的Guardfile:

# Guardfile 
guard 'rspec', :version => 2, :cli => '--drb' do # :cli => is important! 
    watch(%r{^spec/}) { "spec" } 
    watch(%r{^app/}) { "spec" } 
    watch('config/routes.rb') { "spec" } 
end 

這將運行在spec文件夾中任何時候任何在specapp,或者routes.rb變化,只要你保存它會爲你節省大量的時間。

使用growl(mac)或libnotify(linux)gems來獲得彈出式通知。然後,您只需在編輯器中編寫代碼,每次保存後不久您都會收到彈出式通過/失敗通知。如果這是一個通行證,你只需要繼續編碼 - 如果失敗,你會跳到終端並查看錯誤是什麼。

+1

不能同意更多。 spork是添加到TDD工具箱的好工具。 – xentek

15

https://github.com/guard/guard#interactions

您可以衛隊交互和輸入命令時衛隊無關。 Guard瞭解以下命令:

↩: Run all Guards. 
h, help: Show a help of the available interactor commands. 
r, reload: Reload all Guards. 
n, notification: Toggle system notifications on and off. 
p, pause: Toggles the file modification listener. The prompt will change to p> when paused. This is useful when switching Git branches, rebase Git or change whitespace. 
e, exit: Stop all Guards and quit Guard. 

所以,基本上你進入Guard運行的終端,並按Enter/Return。

+0

我剛剛回過頭來看到@balexand已經給出了相同的答案。起初,我沒有注意到他的答案,因爲它從屬於廣告。當接受的答案錯誤時(或者在這種情況下,過時),應該做些事情。我試圖對接受的答案進行編輯,但它被拒絕了......好吧......這種事情可能已經在meta上進行了討論(毫無疑問)。 –

+0

這是我正在尋找的感謝。因此只需添加'r'來防止重新加載並運行所有測試。例如:'[5] guard(main)> r'。現在我想知道是否有一種方法可以添加一個從sublime-text 2觸發'guard(main)> r'的shortcukey? – zulucoda

相關問題