簡體   English   中英

調試Rails測試

[英]Debugging rails tests

測試一直是我一直避免的事情,直到我意識到編寫良好的測試我可以避免不得不進入控制台並一遍又一遍地運行一串命令。 但是,我遇到的最大問題是,當測試失敗時,我看不到有多少數據可用於調試。 例如,當我測試模型時,我需要查看模型屬性,並且需要控制何時構建,創建和保存模型,以及檢測這些狀態的方法。 使用導軌固定裝置和普通的香草測試,這很煩人。

如何使調試夾具和導軌測試變得更容易? 測試失敗時,是否可以顯示更多類似控制台的信息? 我可以使用哪些測試工具更輕松地進行調試? 畢竟,調試測試本身會浪費大量時間,並且是首先使用它們的最大障礙。

謝謝!

日志記錄有助於調查和解決問題。 不僅在測試中,而且還在生產中部署時。 您可以記錄模型的狀態和其他有用的信息。 此外,標准的rails日志記錄了發送到數據庫的SQL,因此您可以輕松查看那里發生了什么。 在開發和測試中,默認情況下SQL日志記錄處於打開狀態,其外觀類似於以下內容:

[2015-09-24 23:19:36 ledger DEBUG]:   [1m[36m (0.2ms)[0m  [1mBEGIN[0m
[2015-09-24 23:19:36 ledger DEBUG]:   [1m[35mSQL (2.1ms)[0m  INSERT INTO "projections_tags" ("ledger_id", "tag_id", "name", "authorized_user_ids") VALUES ($1, $2, $3, $4) RETURNING "id"  [["ledger_id", "ea9a68c5-c7c8-4964-b078-45bfc93d41ef"], ["tag_id", 9], ["name", "test"], ["authorized_user_ids", "{1}"]]
[2015-09-24 23:19:36 ledger DEBUG]:   [1m[36m (0.4ms)[0m  [1mCOMMIT[0m

我將log4r用作日志記錄庫,因為它可以更好地控制日志輸出。

我也不喜歡調試,但在某些情況下確實有幫助。 在這種情況下, byebug是您的朋友。

和科西斯rails consolerails dbconsole

調試測試與調試代碼沒有太大區別。

Rails已經附帶了byebug gem(如果需要,請取消注釋):

group :development, :test do
  gem 'byebug'
end

現在您可以放了

debugger

在代碼中的任何地方排行。

Byebug支持許多其他功能,您可以在此處找到: https : //github.com/deivid-rodriguez/byebug

還請檢查https://github.com/deivid-rodriguez/pry-byebug項目,該項目可提供更好的調試體驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM