包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)(当从&#34; build&#34;选项卡进行测试时)此测试失败,因为parse
函数无法返回属性(由于str而在测试输出上可见) 。对于travis-ci,同样的测试也失败了。这是什么原因?怎么解决?
以下是我使用的最小测试包和travis测试日志的链接
答案 0 :(得分:1)
仅在parse(..., keep.source = TRUE)
时保留属性。根据{{1}}文档,keep.source的默认值来自getOption("keep.source")
。默认选项值可能是不同的运行R交互式运行与非交互式运行。如果要始终保留源,则应确保将其设置为TRUE。