Helper, setup, and teardown files located in the same directory as the test will also be run.
Usage
test_file(path, reporter = default_compact_reporter(), package = NULL, ...)
Arguments
- path
Path to file.
- reporter
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.
- package
If these tests belong to a package, the name of the package.
- ...
Additional parameters passed on to
test_dir()
Special files
There are two types of .R
file that have special behaviour:
Test files start with
test
and are executed in alphabetical order.Setup files start with
setup
and are executed before tests. If clean up is needed after all tests have been run, you can usewithr::defer(clean_up(), teardown_env())
. Seevignette("test-fixtures")
for more details.
There are two other types of special file that we no longer recommend using:
Helper files start with
helper
and are executed before tests are run. They're also loaded bydevtools::load_all()
, so there's no real point to them and you should just put your helper code inR/
.Teardown files start with
teardown
and are executed after the tests are run. Now we recommend interleave setup and cleanup code insetup-
files, making it easier to check that you automatically clean up every mess that you make.
All other files are ignored by testthat.
Environments
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.
Examples
path <- testthat_example("success")
test_file(path)
#>
#> ══ Testing test-success.R ════════════════════════════════════════════════
#>
#> [ FAIL 0 | WARN 0 | SKIP 0 | PASS 0 ]
#> [ FAIL 0 | WARN 0 | SKIP 0 | PASS 1 ]
#> [ FAIL 0 | WARN 0 | SKIP 1 | PASS 1 ]
#> [ FAIL 0 | WARN 1 | SKIP 1 | PASS 1 ]
#> [ FAIL 0 | WARN 1 | SKIP 1 | PASS 2 ]
#> [ FAIL 0 | WARN 1 | SKIP 1 | PASS 3 ]
#> [ FAIL 0 | WARN 1 | SKIP 1 | PASS 4 ]
#>
#> ── Skip (test-success.R:6:3): you can skip tests if needed ─────────────────────
#> Reason: This test hasn't been written yet
#>
#> ── Warning (test-success.R:10:3): some tests have warnings ─────────────────────
#> NaNs produced
#> Backtrace:
#> 1. testthat::expect_equal(log(-1), NaN)
#> at test-success.R:10:2
#> 2. testthat::quasi_label(enquo(object), label, arg = "object")
#> 3. rlang::eval_bare(expr, quo_get_env(quo))
#>
#>
#> [ FAIL 0 | WARN 1 | SKIP 1 | PASS 4 ]
test_file(path, reporter = "minimal")
#> .SW...