[R]如何在R Package加上code coverage (codecov)?

code coverage(代碼覆蓋率)?

這篇是根據這篇的步驟操作。 如果要找 package 內容物該有的東西可以參考我完成的一個 R package

以下會將步驟一一列下。


1. 完成 R package 與建立 test 測試

建立 R package 可以參考大神的書,test 則可以參考這本書的 testing 章節

基本上使用,

devtools::use_testthat()

就會自己建立一個 tests 資料夾,再把要測試的程式碼加進下一層的 testthat 資料夾內。

最後進行測試,

devtools::test()

2. 建立所有 code coverage 需要的檔案與內容

先跑一下程式碼,

devtools::use_coverage()

跑完後會出現以下的步驟提示,

* Creating `codecov.yml` from template.
* Adding `codecov.yml` to `.Rbuildignore`.
* Add to `README.md`: 
[![Coverage Status](https://img.shields.io/codecov/c/github/shihs/LiUAdRLab3/master.svg)](https://codecov.io/github/shihs/LiUAdRLab3?branch=master)
* Add to `.travis.yml`:
after_success:
  - Rscript -e 'covr::codecov()'

基本上就一步一步照著做就對了,前面兩件事程式已經幫你處理好了,
從第三步開始就行。


3. 將 Github 與 codecov 連結

使用 Github 帳號登入 codecov.io

連結你要使用 codecov 的 reposity, 會出現像這樣的畫面得到一組 token, 將 token 複製,在 R 中跑以下程式碼,

install.packages("covr")
library(covr)
codecov(token = "YOUR_TOKEN_GOES_HERE")

大功告成!

這時候會看到你剛剛貼上的 coverage 圖案出現 code coverage 的結果。


如果想要先在 R studio 上看測試結果可以使用,

library (covr)
report()

viewer 視窗就會顯示測試結果了。