library(testit) rm(list = ls()) z = 5 assert('a list can be used as the parent frame for knit()', { # evaluate in a new environment; should create an object in current envir (!has_error(with(list(y = 4:8), knit('knit-envir.Rmd', quiet = TRUE)))) }) env = new.env() env$y = 1:3 knit('knit-envir.Rmd', envir = env, quiet = TRUE) assert('knit() creates objects in its envir argument', { (!exists('asdfqwerzxcv')) (exists('asdfqwerzxcv', envir = env)) }) assert('undefined external objects should cause errors', { (suppressMessages(has_error(knit('knit-envir.Rmd', quiet = TRUE)))) # y is not found (!has_error(with(list(y = letters), knit('knit-envir.Rmd', quiet = TRUE)))) }) file.remove('knit-envir.md')