パッケージのtest_dir()
関数を使用してRでテストを実行しています。testthat
一部のテスト スクリプトには、 を呼び出す関数がありreadline()
、対話モードでは、テストを一時停止してユーザー入力を待ちます。関数呼び出しreadline()
は私自身のものではなく、私はそれらに影響を与えません。ユーザー入力は、これらの関数の出力には関係ありません。
テスト中にこれらの一時停止を回避する方法はありますか?
頭に浮かぶアプローチですが、それらを実装する方法はわかりません:
- R の実行中に対話モードを無効にする
testthat
非対話モードでスクリプトを実行するパッケージの別の関数を使用する- なんとか
stdin
端末以外に流用(??) readline()
テストスクリプトから非インタラクティブモードで呼び出され、結果を利用できるようにする別のスクリプトで呼び出す関数をラップします
を使用してコマンド ラインからのみテストRscript
することもできますが、RStudio ワークフローにとどまることをお勧めします。
======
サンプルコード
with_pause <- function () {
readline()
2
}
without_pause <- function () {
2
}
expect_equal(with_pause(), without_pause())