我是R语言编程的新手,遇到了testthat和Rscript令人困惑的问题。
我有一个测试文件,名为test.R
,其中包含一堆testthat::test_that("test_name", {testthat::expect ...})
语句。如果我运行Rscript test.R
,或者只是将测试中的语句粘贴到R控制台中并手动检查expect
是否可以通过,那么一切都会按预期进行,并且我的测试似乎可以成功。
但是,如果我使用library(devtools); devtools::test()
,则测试失败,并且下标超出范围错误。
我没有包含任何特定的代码,因为我不想尝试调试特定的错误,而是希望了解如何实现。 testthat
将运行其他版本吗?与运行Rscript
相比,testthat
和R控制台之间是否存在不同的行为?
答案 0 :(得分:0)
FWIW,我遇到了同样的问题。
在我的情况下,脚本中创建的对象与测试helper
文件中创建的对象不完全相同,因此测试正在接收脚本的信息略有不同,因此返回了不同的结果。