Skip to content

Use shinytest2 with your Shiny application


  app_dir = ".",
  runner = missing_arg(),
  setup = missing_arg(),
  ignore = missing_arg(),
  package = missing_arg(),
  quiet = FALSE,
  overwrite = FALSE

  app_dir = ".",
  open = rlang::is_interactive(),
  quiet = FALSE,
  overwrite = FALSE



The base directory for the Shiny application


If TRUE, creates a shinytest2 test runner at ./tests/testthat.R


If TRUE, creates a setup file called ./tests/testthat/setup-shinytest2.R containing a call to load_app_env()


If TRUE, adds entries to .Rbuildignore and .gitignore to ignore new debug screenshots. (*


If TRUE, adds shinytest2 to Suggests in the DESCRIPTION file.


Must be empty. Allows for parameter expansion.


If TRUE, console output will be suppressed.


If TRUE, the test file or test runner will be overwritten.


If TRUE, the test file will be opened in an editor via file.edit() after saving.


  • use_shinytest2(): This usethis-style method initializes many different useful features when using shinytest2:

    • runner: Creates a shinytest2 test runner at ./tests/testthat.R. This file will contain a call to test_app().

    • setup: Creates ./tests/testthat/setup-shinytest2.R to add your Shiny ./R objects and functions into the testing environment. This file will run before testing begins.

    • ignore: Add an entry to ./Rbuildignore (if it exists) and .gitignore to ignore new debug screenshots. (*

    • package: Adds shinytest to the Suggests packages in the DESCRIPTION file (if it exists).

    If any of these values are not missing, the remaining missing values will be set to FALSE. This allows use_shinytest2() to add more flags in future versions without opting into all changes inadvertently.

  • use_shinytest2_test(): Creates a test file called ./tests/testthat/test-shinytest2.R. By default, this file's template test will initialize your Shiny application and expect the initial values.

    This method will also set up a test runner if it does not exist.


# Set up shinytest2 testing configs
if (FALSE) use_shinytest2()
# Set up a shinytest2 test
if (FALSE) use_shinytest2_test()