解析不返回Rstudio测试环境和Travis中的属性

时间:2016-12-24 01:53:46

标签: r unit-testing parsing testthat

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测试日志的链接

1 个答案:

答案 0 :(得分:1)

仅在parse(..., keep.source = TRUE)时保留属性。根据{{​​1}}文档,keep.source的默认值来自getOption("keep.source")。默认选项值可能是不同的运行R交互式运行与非交互式运行。如果要始终保留源,则应确保将其设置为TRUE。