testthat (version 2.3.0)

test_dir: Run all tests in directory or package


Use test_dir() for a collection of tests in a directory; use test_package() interactively at the console, and test_check() inside of R CMD check.

In your own code, you can use is_testing() to determine if code is being run as part of a test and testing_package() to retrieve the name of the package being tested. You can also check the underlying env var directly identical(Sys.getenv("TESTTHAT"), "true") to avoid creating a run-time dependency on testthat.


test_dir(path, filter = NULL, reporter = default_reporter(),
  env = test_env(), ..., encoding = "unknown", load_helpers = TRUE,
  stop_on_failure = FALSE, stop_on_warning = FALSE, wrap = TRUE)

test_package(package, filter = NULL, reporter = check_reporter(), ..., stop_on_failure = TRUE, stop_on_warning = FALSE)

test_check(package, filter = NULL, reporter = check_reporter(), ..., stop_on_failure = TRUE, stop_on_warning = FALSE, wrap = TRUE)





Path to directory containing tests.


If not NULL, only tests with file names matching this regular expression will be executed. Matching be performed on the file name after it has been stripped of "test-" and ".R".


Reporter to use to summarise output. Can be supplied as a string (e.g. "summary") or as an R6 object (e.g. SummaryReporter$new()).

See Reporter for more details and a list of built-in reporters.


Environment in which to execute the tests. Expert use only.


Additional arguments passed to grepl() to control filtering.


Deprecated. All files now assumed to be UTF-8.


Source helper files before running the tests? See source_test_helpers() for more details.


If TRUE, throw an error if any tests fail.

For historical reasons, the default value of stop_on_failure is TRUE for test_package() and test_check() but FALSE for test_dir(), so if you're calling test_dir() you may want to consider explicitly setting stop_on_failure = TRUE.


If TRUE, throw an error if any tests generate warnings.


Automatically wrap all code within test_that()? This ensures that all expectations are reported, even if outside a test block.


Name of installed package.


A list of test results.

Test files

For package code, tests should live in tests/testthat.

There are four classes of .R files that have special behaviour:

  • Test files start with test and are executed in alphabetical order.

  • Helper files start with helper and are executed before tests are run and from devtools::load_all().

  • Setup files start with setup and are executed before tests, but not during devtools::load_all().

  • Teardown files start with teardown and are executed after the tests are run.


Each test is run in a clean environment to keep tests as isolated as possible. For package tests, that environment that inherits from the package's namespace environment, so that tests can access internal functions and objects.

<code>R CMD check</code>

To run testthat automatically from R CMD check, make sure you have a tests/testthat.R that contains:




Run this code
test_dir(testthat_examples(), reporter = "summary")
test_dir(testthat_examples(), reporter = "minimal")
# }

Run the code above in your browser using DataLab