5

私は R で最初の単体テストを行うことを学んでおり、短い研究レポートを簡単に配信できるように R Markdown ファイルにコードを記述しています。同時に、これらのファイルで使用する関数をテストして、結果が正常であることを確認したいと思います。

ここに問題があります。R Markdown ファイルは、RUnit テスト ハーネスではなく、HTML ウィーバーに入れることを意図しています。関数をテスト コードにロードする場合、いくつかの選択肢があります。

  1. Markdown ファイルからコード チャンクをコピーして貼り付けます。これにより、Markdown ドキュメント内のコードがテスト対象のコードから分離されます。
  2. テスト コードを Markdown ファイル内に配置すると、レポートがわかりにくくなります (おそらく、最終的には許容できるでしょう)。
  3. コードを記述し、最初にテストしてから、ライブラリとして Markdown コードに含めます。これにより、レポートの本文にコードを含めるという有益な特徴が取り除かれます。

これらの各アプローチの欠点を回避する、より賢明な方法はありますか?

4

1 に答える 1

8

あなたはこのようなことをすることができます

## Rmarkdown file with tests

```{r definefxn}
foo <- function(x) x^2
```

Test fxn

```{r testfxn}
library(testthat)

expect_is(foo(8), "numeric")
expect_equal(foo(8), 6)
```

もちろん、合格したテストは何も出力しませんが、失敗したテストは何が失敗したかについて意味のあるメッセージを出力します。

于 2013-11-06T01:54:34.397 に答える