首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ruby on Rails 開發從頭來(二十八):使用 Rake 執行測試與程式碼統計

     編輯:Java 相關知識

Rake 簡介

Rake 是 Ruby 版的 Make,以 Rakefile 定義任務相依關係與動作。Rails 專案產生時自動建立 Rakefile,內建大量實用任務。

常用測試任務

指令功能
rake執行所有測試 (單元+功能+整合)
rake test:units僅執行模型單元測試
rake test:functionals僅執行控制器功能測試
rake test:integration僅執行整合測試
rake test:recent執行最近修改過的測試
rake clone_structure_to_test將開發資料庫結構複製到測試資料庫

單一測試檔案/方法執行

# 執行特定測試檔
ruby test/functional/search_controller_test.rb

# 執行特定測試方法
ruby test/functional/search_controller_test.rb -n test_search
ruby test/functional/search_controller_test.rb -n /search/  # 正則匹配方法名

自動化持續測試

搭配 DamageControl、CruiseControl.rb 或現代 Jenkins/GitLab CI:

  • 監控版本庫提交
  • 自動檢出、執行 rake
  • 失敗即時通知(Email、Slack、Webhook)
  • 歷史建置趨勢圖表

程式碼統計

depot> rake stats

輸出詳細統計表:

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines | LOC   | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          | 251   | 213   | 5       | 29      | 5   | 5     |
| Helpers              | 14    | 13    | 0       | 1       | 0   | 11    |
| Models               | 113   | 101   | 6       | 16      | 2   | 4     |
| Libraries            | 0     | 0     | 0       | 0       | 0   | 0     |
| Components           | 0     | 0     | 0       | 0       | 0   | 0     |
| Integration tests    | 0     | 0     | 0       | 0       | 0   | 0     |
| Functional tests     | 241   | 192   | 8       | 30      | 3   | 4     |
| Unit tests           | 88    | 74    | 4       | 11      | 2   | 4     |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                | 707   | 593   | 23      | 87      | 3   | 4     |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 327    Test LOC: 266    Code to Test Ratio: 1:0.8

指標說明:

  • Lines:總行數(含註解、空行)
  • LOC:邏輯程式碼行數
  • M/C:每類別平均方法數
  • LOC/M:每方法平均行數
  • Code to Test Ratio:生產碼與測試碼比例,1:0.8 表示測試覆蓋度不錯

測試覆蓋率分析

使用 rcov gem(現代專案建議用 SimpleCov):

gem install rcov
rcov test/functional/search_controller_test.rb

產生 coverage/ 目錄下的 HTML 報告:

  • 綠色:已覆蓋程式碼
  • 紅色:未覆蓋程式碼
  • 每檔案、每方法覆蓋率百分比

將覆蓋率門檻納入 CI 流程,確保核心邏輯完整測試。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved