[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 視窗就會顯示測試結果了。