任何人都有任何想法为什么在textConnection
函数中使用test_that
无法正常运行?
即。如果我直接运行以下代码,一切都很好:
txt <- ""
con <- textConnection("txt", "w")
writeLines("test data", con)
close(con)
expect_equal(txt, "test data") #Works
然而,如果我将其嵌套在test_that
函数内部,它就不起作用,我得到一个空的txt变量来expect_equal
调用。
test_that("connection will work", {
txt <- ""
con <- textConnection("txt", "w")
writeLines("test data", con)
close(con)
expect_equal(txt, "test data")
}) #Fails
会话信息
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] testthat_0.7 RODProt_0.1.1 rjson_0.2.12
loaded via a namespace (and not attached):
[1] evaluate_0.4.2 plyr_1.8 stringr_0.6.1 tools_2.15.2
答案 0 :(得分:6)
试试这个:
test_that("connection will work", {
txt <- ""
con <- textConnection("txt", "w",local = TRUE)
writeLines("test data", con)
close(con)
expect_equal(txt, "test data")
})
我从预感到那里,test_that
评估单独环境中的代码的事实与问题有关,然后检查textConnection
上的文档。