R语言 仅当在我的本地计算机上生成软件包时运行测试[重复]

yjghlzjz  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(118)

此问题已在此处有答案

Skip tests on CRAN, but run locally(2个答案)
8天前关闭
假设我正在开发一个R包,并且有一些测试是用R CMD check执行的。
我希望这些测试中的一些只在我在我的机器上本地构建包时执行,而在CRAN处理包时跳过。
一种解决方案是在将包上传到CRAN之前注解掉这些测试,但这很容易出错,而且需要手动操作。
是否有一些if语句或设置我可以添加,以实现这一点?

bprjcwpo

bprjcwpo1#

skip_on_cran()是你需要的。

test_that("skip example", {
  expect_equal(1, 1L)    # this expectation runs
  skip_on_cran()
  expect_equal(1, 2)     # this one skipped
  expect_equal(1, 3)     # this one is also skipped
})

编辑

您没有使用testthat。您可以:

notOnCRAN <- function() {
  identical(Sys.getenv("NOT_CRAN"), "true")
}

并将测试放在if(notOnCRAN()) { ...... }中。

编辑

不...也许:

notOnCRAN <- function() {
  !identical(Sys.getenv("_R_CHECK_CRAN_INCOMING_"), "true")
}

相关问题