错误:在 devtools::test() 中进行基本 R 绘图测试时“没有可记录的当前设备”

问题描述 投票:0回答:1

我在 R 包中编写了一个简单的测试来检查绘图的类别。它看起来像这样:

test_that("test works", {
  base_r_plot <- recordPlot(plot(1))
  expect_equal(class(base_r_plot), "recordedplot")
})

如果我尝试通过

devtools::test()
运行它,我会得到:

Error in `recordPlot(plot(1))`: no current device to record from

这是为什么?我该如何补救?

r plot devtools r-package testthat
1个回答
0
投票

在交互式会话中,图形设备往往“自行”打开。然而,运行测试显然与设备不同,例如

pdf()
需要手动打开。将其设置为
pdf(NULL)
还可以防止编写多余的
Rplots.pdf

test_that("test works", {
  pdf(NULL) # prevent writing Rplots.pdf
  base_r_plot <- recordPlot(plot(1))
  dev.off()
  expect_equal(class(base_r_plot), "recordedplot")
})
© www.soinside.com 2019 - 2024. All rights reserved.