編集:
~/.Rprofile
内にロードされていない可能性はありますかcheck()
。~/.Rprofile
がロードされていないため、プロセス全体が失敗したようです。
編集完了
の自動テストで奇妙な問題が発生しましたtestthat
。実際、パッケージをテストすると、test()
すべて正常に動作します。しかし、テストするとcheck()
エラーメッセージが表示されます。
エラーメッセージには次のように記載されています。
1. Failure (at test_DML_create_folder_start_MQ_script.R#43): DML create folder start MQ Script works with "../DML_IC_MQ_DATA/dummy_data" data
capture.output(messages <- source(basename(script_file))) threw an error
Error in sprintf("%s folder got created for each raw file.", subfolder_prefix) :
object 'subfolder_prefix' not found
このエラーの前に、変数を定義するスクリプトを入手しました。subfolder_prefix
これが、この場合に機能する理由だと思いますtest()
。check()
しかし、私はこれを関数でも実行することを期待していました。
完全なテスト スクリプトをここに投稿します。複雑でないことを願っています。
library(testthat)
context("testing DML create folder and start MQ script")
test_dir <- 'dml_ic_mq_test'
start_dir <- getwd()
# list of test file folders
data_folders <- list.dirs('../DML_IC_MQ_DATA', recursive=FALSE)
for(folder in data_folders) { # for each folder with test files
dir.create(test_dir)
setwd(test_dir)
script_file <- a.DML_prepare_IC.script(dbg_level=Inf) # returns filename I will source
test_that(sprintf('we could copy all files from "%s".',
folder), {
expect_that(
all(file.copy(list.files(file.path('..',folder), full.names=TRUE),
'.',
recursive=TRUE)),
is_true())
})
test_that(sprintf('DML create folder start MQ Script works with "%s" data', folder), {
expect_that(capture.output(messages <- source(basename(script_file))),
not(throws_error()))
})
count_rawfiles <- length(list.files(pattern='.raw$'))
created_folders <- list.dirs(recursive=FALSE)
test_that(sprintf('%s folder got created for each raw file.',
subfolder_prefix), {
expect_equal(length(grep(subfolder_prefix, created_folders)),
count_rawfiles)
})
setwd(start_dir)
unlink(test_dir, recursive=TRUE)
}
私のスクリプトでは、変数を定義しsubfolder_prefix <- 'IC_'
、テスト内で、生ファイルごとに同じ数のフォルダーが作成されているかどうかを確認します...これが私のスクリプトが行うべきことです...
私が言ったように、私はここでこの問題をデバッグする方法がわかりませtest()
んcheck()
。