parse 不 return Rstudio 测试环境和 Travis 中的属性
parse does not return attributes in Rstudio test environment and Travis
包parseMe
只有一个功能
parseMe <- function(text) {
parsed = parse(text = text)
str(parsed) #for diagnosis
getParseData(parse(text = parsed))
}
此函数已使用 testthat
进行测试test_that('parseMe',{
expect_that(parseMe('print("hey")'), is_a('data.frame'))
})
如果从 Rstudio 命令行以交互方式运行 devtools::test(),则此测试通过。然而,在 Rstudio 测试环境 (v0.99.892) 中(从 "build" 选项卡进行测试时)此测试失败,因为 parse
函数无法 return 属性(由于 str 在测试输出中可见).同样的测试在 travis-ci 上也失败了。这是什么原因?如何解决?
下面是我使用的最小测试包和travis测试日志的链接
仅当 parse(..., keep.source = TRUE)
时才保留属性。根据 ?parse
文档,keep.source 的默认值来自 getOption("keep.source")
。很可能默认选项值是不同的 运行 运行ning R 交互式与非交互式。如果您想始终保留源,则应确保将其设置为 TRUE。