Rトラックでのテスト

ExercismでRの演習をテストする方法を学びましょう。


このトラックのテストでは、testthatパッケージを使います。

パッケージをインストールするには、Rを開いて次のコマンドを実行するだけです。

install.packages("testthat")

パッケージが正しくインストールされたかどうかは、次のコマンドを実行して確認できます。

library(testthat)

各演習には、test_<exercise-name>.Rという名前のスクリプトがあります(例:test_hello-world.R)。

演習のテストを実行するには、このRスクリプトを実行するだけです。

RStudioでは、テストスクリプトを開き、ソースペインの右上にある「Source」をクリックするだけです。すると、テストスクリプトの1行目にあるsourceコマンドによって解答コードが読み込まれ、そのあとに続くtestthatのテスト一式が実行されます。

ただし、テストスクリプトの1行目にあるsource()コマンドが機能するのは、解答スクリプト(<exercise-name>.R)が作業ディレクトリにある場合だけです。そうでない場合は、次のいずれかを行います。

  • 作業ディレクトリを変更する(例:setwd('exercism/r/hello-world/'))
  • テストスクリプトの1行目を書き換える(例:source('exercism/r/hello-world/hello-world.R'))

コマンドラインからテストを実行したい場合は、Rscript path_to_exercise_directory/test_<exercise-name>.Rのように実行することもできます(例:Rscript hello-world/test_hello-world.R)。

これらのテストを実行するもう一つの便利な方法は、testthatのauto_test関数を使うことです。Exercismのコードとテストは同じフォルダーに置かれているので、code_pathとtest_pathの両方の仮引数に同じパスを指定します。auto_test()を実行すると、演習のRコードを更新または保存するたびに、その演習のテストが自動的に実行されます。これにより、解答に取り組んでいるときに、素早く繰り返し作業を進められます。