13

testthatパッケージを使用してRスクリプトのコードカバレッジを評価するツールはありますか?RJournalの記事のFutureworkセクションでのトピックの言及を除いて、Googleは何も見つけませんでした。

4

4 に答える 4

23

あなたがやりたいことすべてをするように見える新しく到着した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
于 2015-03-31T02:05:02.223 に答える
7

私は自分の質問に答えます:-)

プロジェクトサイトでも同じ質問をしました。現時点では、testthatライブラリに対するそのようなサポートはないようですが、最近、Rの開発バージョンを使用し、プロファイラーのいくつかの新機能を利用することで可能性が開かれました。残念ながら、それを行うのは大変な作業のようですが、誰かがそれを主導してくれることを願っています。

このチケットで詳細を見つけてください。

于 2012-09-11T08:59:20.817 に答える
1

関数レベルでRファイルのセットのテストカバレッジを計算する試みは次のとおりです。

https://gist.github.com/cannin/819e73426b4ebd5752d5

正規表現を使用して、関数が作成される場所と呼び出されるタイミングを見つけることに依存します。

于 2014-11-02T16:24:18.833 に答える
1

testthat次のソリューションを使用して、パッケージを使用するRスクリプトのコードカバレッジを評価できます。

library(covr)
coverage_to_list()
于 2018-09-11T22:45:07.863 に答える