【发布时间】:2020-03-23 20:55:34
【问题描述】:
我是 R 编程新手,在使用 testthat 和 Rscript 时遇到了一个令人费解的问题。
我有一个测试文件,称为test.R,其中包含一堆testthat::test_that("test_name", {testthat::expect ...}) 语句。如果我运行 Rscript test.R,或者如果我只是将测试中的语句粘贴到 R 控制台并手动检查 expect 是否会通过,一切都会按预期运行,并且我的测试似乎成功了。
但是,如果我使用library(devtools); devtools::test(),则会出现下标越界错误的失败测试。
我没有包含任何特定代码,因为我不想尝试调试特定错误,而是希望了解这是如何可能的。 testthat 会运行不同的版本吗? Rscript 和 R 控制台与 testthat 运行的行为相比是否存在不同的行为?
【问题讨论】:
-
您的包源代码是否公开可用,例如在 GitHub 存储库中?
-
很遗憾没有
-
您能否发布来自
devtools::test()的完整错误消息/输出?我知道当您在寻找更广泛的答案时,我会询问有关具体问题的问题,但找到具体问题可能有助于回答者找到需要解决的特定更广泛主题。 -
它只是说它遇到了一个错误“下标越界”,然后指向导致错误的行。这里有一个看似相似的错误:github.com/r-lib/testthat/issues/700,但添加对 context() 的调用对我的问题没有帮助。