iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
自我挑戰組

Rails測試寫起乃!!!系列 第 16

Day16 測試寫起乃 - 測試覆蓋率

測試覆蓋率在測試中的環節也是需要顧及的,我們今天會使用 SimpleCov 來算測試覆蓋率

安裝 SimpleCov

  1. 安裝 gem 然後 bundle install:

gem 'simplecov', require: false, group: :test

  1. 可以放在 test/test_helper.rb (or spec_helper.rb, rails_helper, cucumber env.rb)

  2. 因為只需要在測試環境所以可以用 env 判斷

if ENV['RAILS_ENV'] == 'test'
  require 'simplecov'
  SimpleCov.start 'rails'
  puts "required simplecov"
end

現在來跑專案中全部測試 RAILS_ENV=test rspec spec

Coverage report generated for RSpec to
/Users/cyberbiz/Desktop/ck/rspec_practice/coverage. 10 / 40 LOC (25.0%) covered.

跑完測試之後,就可以直接打開 SimpleCov 幫你產出的 coverage/index.html

$ open coverage/index.html

其實就看得出來目前測試覆蓋率總共幾% 也能點進檔案中看哪幾行呈現紅色,代表就是沒有跑到。反之,綠色代表有跑且最右方會算總共跑了幾次

測試覆蓋率不是代表 100% 就是最好,覆蓋率越高其實開發成本也越高,所以還是測一些該測的就好拉~


上一篇
Day15 測試寫起乃 - Devise login user
下一篇
Day17 測試寫起乃 - expect() vs expect {}
系列文
Rails測試寫起乃!!!30

尚未有邦友留言

立即登入留言