首页 > 解决方案 > R testthat 结果与使用 Rscript 运行测试文件不同

问题描述

我是 R 编程新手,遇到了 testthat 和 Rscript 的一个莫名其妙的问题。

我有一个测试文件,叫做它test.R,它包含一堆testthat::test_that("test_name", {testthat::expect ...})语句。如果我运行Rscript test.R,或者如果我只是将测试中的语句粘贴到 R 控制台并手动检查是否expect会通过,一切都会按预期工作,并且我的测试似乎成功了。

但是,如果我使用library(devtools); devtools::test(),则会出现下标越界错误的失败测试。

我没有包含任何特定代码,因为我不想尝试调试特定错误,而是希望了解这是如何可能的。会testthat运行不同的版本吗?Rscript与 R 控制台相比,R 控制台之间是否存在不同的行为testthat

标签: rtestingtestthat

解决方案


FWIW,我遇到了同样的问题。

就我而言,脚本中创建的对象测试文件中创建的对象并不完全相同helper,因此测试接收到的信息与脚本略有不同,因此返回的结果也不同。


推荐阅读