drm*_*iod 7 r devtools testthat
有没有办法重现使用的环境devtools::check?
我有问题,我的测试工作devtools::test()但内部失败devtools::check().我的问题是现在,如何找到问题.报告check只是打印错误日志的最后几行,我找不到完整的测试报告.
checking tests ... ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
...
Run Code Online (Sandbox Code Playgroud)
我知道check使用不同的环境相比,test但我不知道如何调试这些问题,因为它们根本不可重现.特别是这些测试在几个月前运行,所以不知道在哪里寻找问题.
编辑
实际上我试图找到我的问题,我找到了解决方案.但要发布我的解决方案,我必须添加更多细节.
所以我的测试总是失败,因为我测试了markdown脚本,如果它运行没有错误,之后我检查是否正确设置了一些环境变量.这些是我用脚本计算的结果以及我设置的标准设置.因此,如果我在开发后忘记更改某些设置,我想收到警告...
无论如何,既然是降价剧本,我不得不提取代码,我是用这个职位评论knitr:运行Rmarkdown文档中的所有数据块使用knitr::purl,以获取代码,并sys.source执行它.
runAllChunks <- function(rmd, envir=globalenv()){
# as found here https://stackoverflow.com/questions/24753969
tempR <- tempfile(tmpdir = '.', fileext = ".R")
on.exit(unlink(tempR))
knitr::purl(rmd, output=tempR, quiet=TRUE)
sys.source(tempR, envir=envir)
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这会产生一个错误,因为可能会持续几周(不确定我最近安装了哪些新软件包......).但是由于有一个新的评论,我可以使用knitr::knit它也执行代码,这按预期工作,现在我的测试不再抱怨.
所以最后,我不知道问题究竟在哪里,但现在正在发挥作用.
这是 testthat 的一个已知问题。解决方法是将以下内容添加为中的第一行tests/testthat.R:
Sys.setenv(R_TESTS="")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |