When running the "danger works" test line by line, each line passes successfully. However, when running devtools::test(), the following error occurs:

It appears to possibly a problem where we are unable to detach fertile while running test()
Reference code is given below:
danger <- function(expr) {
detach("package:fertile", unload = TRUE)
on.exit(require("fertile"), add = TRUE)
invisible(expr)
}
test_that("danger works", {
wd <- getwd()
expect_error(setwd(tempdir()), "setwd")
expect_message(danger(setwd(path_real(tempdir()))), "fertile")
expect_equal(path_real(getwd()), path_real(tempdir()))
base::setwd(wd)
})