By any chance, have you already configured a NOT_CRAN environment variable ?
spelling::spell_check_test(vignettes = TRUE, error = FALSE,
skip_on_cran = TRUE)
has skip_on_cran = TRUE. This will check the behavior of NOT_CRAN env var before running any spell check. If not set to c("1", "TRUE", "true", "YES"), it will return NULL and not check for spelling. If you use skip_on_cran = FALSE, it will check spelling in any case.
This is just a hint that could explain the behavior...
There is a small say about that in the help page
The spell_check_setup function adds a unit test to your package which automatically runs a spell check on documentation and vignettes during R CMD check if the environment variable NOT_CRAN is set to TRUE . By default this unit test never fails; it merely prints potential spelling errors to the console.
spell_check_setup is the function called by usethis that set skip_on_cran = TRUE by default. This is on purpose so that this test is not executed on CRAN but only during dev check where you explicitly setup the NOT_CRAN variable. Otherwise, with skip_on_cran = FALSE, it will always run, even on CRAN.
It is clearer by looking at the code to see this:
spell_check_test <- function (vignettes = TRUE, error = FALSE, lang = NULL, skip_on_cran = TRUE)
{
if (isTRUE(skip_on_cran)) {
not_cran <- Sys.getenv("NOT_CRAN")
if (is.na(match(not_cran, c("1", "TRUE", "true", "YES"))))
return(NULL)
}
...
}