testthat
パッケージを使用してRスクリプトのコードカバレッジを評価するツールはありますか?RJournalの記事のFutureworkセクションでのトピックの言及を除いて、Googleは何も見つけませんでした。
4 に答える
あなたがやりたいことすべてをするように見える新しく到着したcovr
パッケージがあります、そしてもっと!さまざまなCIサービスとの統合を提供し、光沢があります。あらゆる種類のテストインフラストラクチャ(testthat、RUnit、その他)で動作し、コンパイルされたコードでも動作します。
以下は、あなたが始めるために私がすぐにコンパイルした非常に単純なデモケースです。
install.packages("covr")
testcovr/R/doublefun.r
を含むファイルを追加します
doublefun <- function(x, superfluous_option) {
if (superfluous_option) {
2*x
} else {
3*x
}
}
testcovr/tests/testthat/test.doublefun.r
およびを含むファイル
context("doublefun")
test_that("doublefun doubles correctly", {
expect_equal(doublefun(1, TRUE), 2)
})
次に実行します。
test("testcovr")
## Testing testcovr
## doublefun : .
library(covr)
package_coverage("testcovr")
## doublefun : .
##
## Package Coverage: 66.67%
## R/doublefun.r: 66.67%
zero_coverage(package_coverage("testcovr"))
## doublefun : .
##
## filename first_line last_line first_column last_column value
## 3 R/doublefun.r 5 5 9 11 0
私は自分の質問に答えます:-)
プロジェクトサイトでも同じ質問をしました。現時点では、testthatライブラリに対するそのようなサポートはないようですが、最近、Rの開発バージョンを使用し、プロファイラーのいくつかの新機能を利用することで可能性が開かれました。残念ながら、それを行うのは大変な作業のようですが、誰かがそれを主導してくれることを願っています。
このチケットで詳細を見つけてください。
関数レベルでRファイルのセットのテストカバレッジを計算する試みは次のとおりです。
https://gist.github.com/cannin/819e73426b4ebd5752d5
正規表現を使用して、関数が作成される場所と呼び出されるタイミングを見つけることに依存します。
testthat
次のソリューションを使用して、パッケージを使用するRスクリプトのコードカバレッジを評価できます。
library(covr)
coverage_to_list()