【问题标题】:R testthat results differ from running test file with RscriptR testthat 结果与使用 Rscript 运行测试文件不同
【发布时间】: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() 的调用对我的问题没有帮助。

标签: r testing testthat


【解决方案1】:

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

在我的例子中,在脚本中创建的对象与在测试 helper 文件中创建的对象完全相同,因此测试正在接收 稍微脚本的信息不同,因此返回不同的结果。

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 2019-04-14
    • 2015-12-03
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 2012-04-04
    • 2023-04-07
    • 2014-09-09
    相关资源
    最近更新 更多