local_test_context()
and local_reproducible_output()
set the following options with withr::local_options()
:
cli.unicode
(default: FALSE
) so that the cli package never generates unicode
output (normally cli uses unicode on Linux/Mac but not Windows).
Windows can't easily save unicode output to disk, so it must be set to
false for consistency.
crayon.enabled
(default: FALSE
) suppresses ANSI colours generated by the crayon
package (normally colours are used if crayon detects that you're in a
terminal that supports colour).
width
(default: 80) to control the width of printed output (usually this
varies with the size of your console).
In addition, local_test_context()
sets the following options:
cli.dynamic = FALSE
so that tests assume that they are not run in
a dynamic console (i.e. one where you can move the cursor around).
lifecycle_verbosity = "warning"
so that every lifecycle problem always
generates a warning (otherwise deprecated functions don't generate a
warning every time).
OutDec = "."
so numbers always uses .
as the decimal point
(European users sometimes set OutDec = ","
.)
rlang_interactive = FALSE
so that rlang::is_interactive()
returns
FALSE
, and code that uses it assumes you're in a non-interactive
environment.
useFancyQuotes = FALSE
so base R functions always use regular (straight)
quotes (otherwise the default is locale dependent, see sQuote()
for
details).
local_test_context()
also sets envvars RSTUDIO = 0
(which ensures that RStudio is never
detected as running), and TESTTHAT = "true"
(which ensures that
is_testing()
returns TRUE)
, and sets collation locale to "C"
(which ensures that character sorting the same regardless of current
locale).