tests/testthat/test-reload.R

test_that("reload works", {
  withr::local_temp_libpaths()

  pkg <- as.package(test_path("testTest"))
  pkg_name <- pkg$package

  install(pkg, quiet = TRUE)
  on.exit(unload(pkg$package), add = TRUE)

  expect_false(is_loaded(pkg))

  # Do nothing if the package is not loaded
  expect_error(reload(pkg, quiet = TRUE), NA)
  expect_false(is_loaded(pkg))

  # Reload if loaded
  requireNamespace(pkg_name, quietly = TRUE)
  expect_true(is_loaded(pkg))
  reload(pkg, quiet = TRUE)
  expect_true(is_loaded(pkg))

  # Re-attach if attached
  unload(pkg$package, quiet = TRUE)
  library(pkg_name, character.only = TRUE, quietly = TRUE)
  expect_true(is_loaded(pkg))
  expect_true(is_attached(pkg))
  reload(pkg, quiet = TRUE)
  expect_true(is_loaded(pkg))
  expect_true(is_attached(pkg))
})

Try the devtools package in your browser

Any scripts or data that you put into this service are public.

devtools documentation built on Oct. 12, 2022, 1:06 a.m.