R: Run code before/after tests

teardown {testthat} | R Documentation

## Run code before/after tests

### Description

We no longer recommend using `setup()` and `teardown()`; instead we think it's better practice to use a test fixture as described in `vignette("test-fixtures")`.

Code in a `setup()` block is run immediately in a clean environment. Code in a `teardown()` block is run upon completion of a test file, even if it exits with an error. Multiple calls to `teardown()` will be executed in the order they were created.

### Usage

    teardown(code, env = parent.frame())

    setup(code, env = parent.frame())

### Arguments

`code` | Code to evaluate
`env` | Environment in which code will be evaluated. For expert use only.

### Examples

    ## Not run:
    # Old approach
    tmp <- tempfile()
    setup(writeLines("some test data", tmp))
    teardown(unlink(tmp))

    ## End(Not run)

    # Now recommended:
    local_test_data <- function(env = parent.frame()) {
      tmp <- tempfile()
      writeLines("some test data", tmp)
      withr::defer(unlink(tmp), env)

      tmp
    }
    # Then call local_test_data() in your tests

[Package testthat version 3.0.0 Index]