R CMD check
R パッケージのテストを書いていますが、関数が特定の入力に対して正しい警告を表示することを確認したいと考えています。しかし、警告出力をキャプチャしてテストできるようにする方法がわかりません。
したがって、次のような関数がある場合:
throwsWarning<-function(x){
if(x>0){
warning('Argument "x" is greater than zero, results may be incorrect')
}
# do something useful ...
}
テストファイルに次のようなものが必要です。
warningOutput <-try( throwsWarning(1))
if (warningOutput!='Argument "x" is greater than zero, results may be incorrect'){
stop('function "throwsWarning" did not produce correct warning when x>0')
}
これまでのところoptions
、警告がエラーとして扱われ、trycatch
ブロックで囲まれるように変更することで、可能な部分的な解決策を見つけました。の値をテストすることも考えられますがlast.warning
、警告がスローされない場合は危険と思われます (以前の値をテストします)。私が行方不明になっているこれを行う簡単な方法があるに違いないように思えますか?