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。