gpt4 book ai didi

r - 测试在 devtools::check 中失败但在 devtools::test 中有效

转载 作者:行者123 更新时间:2023-12-04 12:39:43 27 4
gpt4 key购买 nike

有什么办法可以重现devtools::check使用的环境吗? ?

我的测试遇到了问题 devtools::test()但在 devtools::check() 内失败.我现在的问题是,如何找到问题。 check的举报只打印错误日志的最后几行,我找不到完整的测试报告。

checking tests ... ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
...

我知道 checktest 相比使用不同的环境但我不知道我应该如何调试这些问题,因为它们根本无法重现。特别是几个月前运行的这些测试,所以不知道在哪里寻找问题。

编辑

实际上,我试图找到我的问题并找到了解决方案。但是要发布我的解决方案,我必须添加更多细节。

所以我的测试总是失败,因为我正在测试一个 Markdown 脚本,如果它运行没有错误,然后我检查了一些环境变量是否设置正确。这些是我用脚本计算的结果以及我设置的标准设置。因此,如果我在开发后忘记更改某些设置,我想收到警告...

无论如何,由于它是一个 Markdown 脚本,我不得不提取代码并且我使用了这篇文章中的评论 knitr: run all chunks in an Rmarkdown document使用 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)
}

出于某种原因,这可能会在几周后产生错误(不确定我最近安装了哪些新软件包......)。但是由于有新评论,我可以使用 knitr::knit它也执行代码,这按预期工作,现在我的测试不再提示。

所以最后,我不知道问题到底出在哪里,但现在正在起作用。

最佳答案

这是一个 known issue与 testthat。解决方法是在 tests/testthat.R 的第一行添加以下内容:

Sys.setenv(R_TESTS="")

关于r - 测试在 devtools::check 中失败但在 devtools::test 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846465/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com