我是Rails的新手,我知道它內置了諸如單元測試等內容。但我有興趣做一些更簡單的測試,它們與您的「printf」所以我正在測試我編寫的登錄頁面,並且想要跟蹤代碼以查看每行如何查找我的find方法正在返回。我嘗試用「puts」輸出,但是我沒有在命令行中得到任何東西。Rails中的「Printf」測試
0
A
回答
10
我一直使用puts語句以及ruby調試器!這很棒。
在rails中,你可以做幾件事情。我在代碼中加入了「puts」,當我在命令行運行腳本/服務器時,輸出顯示在我的Terminal.app中。我正在運行Mac,但我確信有一種類似的方式可以在您選擇的平臺上跟蹤您的應用程序的活動。
另一種選擇是使用記錄器語句。您可以撥打
logger.debug("My #{variable}")
並在您的log/development.log文件中找到這些語句。另外,如果您在* nix系統上運行,則可以使用「tail」命令逐個跟蹤寫入日誌的最後一條語句。
tail -f log/development.log
這樣你就可以寫出你的陳述,並看到他們發生的事情。有記錄的幾個層次:
logger.warn
logger.info
logger.debug
logger.fatal
每個環境(開發,測試,生產)將決定記錄的是什麼「級別」將被調用,所以你可能會寫與logger.debug日誌報表威利願意不願意,而在發展,但基於默認日誌級別部署時,這些日誌語句將不會寫入。
1
您是否熟悉ruby-debug?
- 安裝
ruby-debug
寶石。 使用-u選項啓動服務器。
腳本/服務器要停止-u
- 將一個
debugger
聲明在你的代碼。 - 您將擁有對變量的控制檯訪問權限,並且可以逐步執行代碼。
查看ruby-debug documentation瞭解更多詳情。
3
用戶是這樣的:
logger.info "method called with #{params.inspect}"
(你可以把任何變量#裏面{})
當您遇到好玩,看看./script/console和紅寶石-debug
0
我做這個之前 - 有乘客,你沒有腳本/服務器的輸出,所以我寫了這個:
# extras/sexy_logging.rb
module SexyLogging
def log(text)
return true if RAILS_ENV == 'production'
string = "\e[0;32mLog:\e[m #{text}"
(100 - string.length).times do
string << ' '
end
string << "(#{caller.first})"
logger.debug string
end
end
ActiveRecord::Base.send :include, SexyLogging
ActionController::Base.send :include, SexyLogging
然後,你可以寫
log variable
或
log 'Testing user'
tail -f log/development.log |grep Log:
並且只能看到你正在記錄的內容,逐行和顏色。
相關問題
- 1. Rails - 在測試中測試國際化
- 2. 測試中的Rails域
- 3. 在gnuplot中的printf調試
- 4. 在Rails中測試seeds.rb
- 5. put_via_redirect Rails中集成測試
- 6. 在Rails中測試ApplicationController before_filter
- 7. 在Rails中測試false 3
- 8. 在測試環境中調試Ruby/Rails
- 9. 的Rails belongs_to的測試
- 10. 覆蓋Rails測試測試::單元:: TestCase
- 11. Shoulda,Rails測試和自動測試
- 12. 運行Rails多次測試I18n測試
- 13. Rails - 用功能測試測試JSON API
- 14. Rails進行測試,多個測試
- 15. assert_redirected_to在Rails測試
- 16. 測試Ruby on Rails
- 17. 測試Rails json API
- 18. Rails模型測試
- 19. Rails路線測試
- 20. Rails測試錯誤
- 21. Rails Pundit Rspec測試
- 22. Rails測試問題
- 23. 在Rails單元測試中測試validates_associated的優雅方法?
- 24. 如何測試Ruby on Rails功能測試中的JSON結果?
- 25. 如何在Rails的功能測試中測試cookies狀態?
- 26. 測試數組中的RSpec/Rails的
- 27. Rails的測試失敗
- 28. Rails的測試失敗
- 29. 對Rails的測試環境
- 30. Ruby on Rails的測試
謝謝。所以,這些語句確實起作用,我只是寫了糟糕的代碼,這意味着它被跳過了! – alamodey 2009-02-11 02:07:30