testthis provides RStudio addins for working with files that contain tests. These can be called like normal R function, but it is also possible to assigned them to hotkeys RStudio (Tools/Modify Keyboard Shortcuts).
test_this(): Reloads the package and runs tests associated with the currently open R script file.
open_testfile(): Opens the associated test file in an editor window. If the currently open file already is a test file, it opens the associated file in the
/Rdirectory. Can be used to jump back and forth between both.
The associated test file for a file
R/foo.R is usually
test-foo.R). You can modify this
behavior by putting the comment
#* @testfile anotherfile anywhere in
testthis also provides functions for managing tests in subdirectories of
use_testdata()places a single R object in the
tests/testhat/testdatadirectory. It is analogous to
usethis::use_data(), except that it saves the object in the
.rdsformat, which is more appropriate for single R objects than
use_testdata_raw()creates the directory
tests/testhat/testdata-raw. Use this directory to put scripts that generate the data in
read_testdata()are simple helpers to read files saved with
test_subdir()for putting/running tests in subdirectories of
tests/testhat/. These tests will not be run on CRAN or by
devtools::test(). This is useful for tests that take a long time to execute, or that require external resources (web, databases) that may not always be available.
test_integration()are presets to run tests in the
Testthis also provides some simple code analysis tools
test_coverage()lists all functions of package and shows whether they are mentioned in any
test_that()calls’ desc argument; e.g. if you have a test file containing
test_that("testing that function foo works", <...>),
foo()will show up marked as tested. This can be used as a simple todo list for testing, but does not replace a proper test coverage analyzer like covr.
test_index()produces an index of all
test_that()calls. Supports RStudio Markers when run interactively from within RStudio.
For more details see the function reference
# Testthis is on CRAN: install.packages("testthis") # You can also install the development version from GitHub: # install.packages("devtools") devtools::install_github("s-fleck/testthis")
RStudio addins (can be assigned to hotkeys):
open_testfile() ## The file `tests/testthat/test_README.Rmd` does not exist. ## You can create it with testthis::test_skeleton(). test_skeleton() ## * Creating `tests/testthat/test_myscript.R` open_testfile() ## > Opens `tests/testthat/test_myscript.R` test_this() ## > Runs tests in `tests/testthat/test_myscript.R` ## > works from the original .R file as well as from the file containing the tests
test_coverage() ## > Package /data/home/fleck/rpkgs/rotor, Test Coverage: 17.8% ## > ## > exported functions .................... ## > u fun ## > + backup ## > + backup_date ## > + backup_time ## > ... # 'u' stands for 'unit tests', more columns are possible if you use the # test_subdir() feature of testthis