我正在使用testthat在自己的程序包上运行测试,现在我有一个抛出错误的测试,以前可以正常运行。我的测试的一般结构是:
test_that("my.test", {
new <- system.file("extdata", "my.new.file.xml", package="my.pkg")
old <- system.file("extdata", "my.old.file.xml", package="my.pkg")
csv.in <- system.file("extdata", "my.data.csv", package="my.pkg")
testFolder <- tempdir()
file.copy(c(new, old, csv.in), testFolder)
#Do something with the files and run tests
files <- list.files(testFolder, full.names=TRUE)
file.remove(files)
})
但是,file.copy(c(new, old, csv.in), testFolder)
行会引发错误
停止(“来自”的文件多于“到”的文件”)
经过几次试验,问题似乎在于tempdir()
没有生成任何路径。这在Windows和Unix上进行(通过Travis测试)。
我尝试了一些不同的操作并阅读了几篇文章,但是由于我不想更改工作目录,也不想在工作目录中移动测试文件,因此似乎没有什么适用于我的情况。我只想在temp目录中执行一些文件操作,然后确认结果。
当我手动运行测试时,它没有问题。
有什么建议吗?