【发布时间】:2021-12-23 10:01:19
【问题描述】:
我正在开发一个 R 包,它调用包 rstan 中的函数。作为 MWE,我的测试文件目前是这样设置的,使用的代码逐字取自 rstan 的示例:
library(testthat)
library(rstan)
# stan's own example
stancode <- 'data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}'
mod <- stan_model(model_code = stancode, verbose = TRUE)
fit <- sampling(mod, data = list(y_mean = 0))
# I added this line, and it's the culprit
summary(fit)$summary
当我在控制台中或通过 RStudio 中的“运行测试”按钮运行此代码时,不会引发任何错误。但是,当我运行 devtools::test() 时,我得到:
Error (test_moments.R:11:1): (code run outside of `test_that()`)
Error in `summary(fit)$summary`: $ operator is invalid for atomic vectors
并且这个错误肯定不会发生在最后一行代码的上游,因为删除最后一行允许devtools::test() 运行而不会出现错误。我正在运行最新的软件包 devtools 和 rstan。
【问题讨论】:
-
我很想知道拒绝投票的原因,以告知未来的问题。
-
我不确定您为什么被否决,但您的问题可以通过包含创建包含失败测试的最小 R 包的代码来改进。
-
好点。谢谢。
标签: r automated-tests devtools testthat rstan