GitHunt
DG

dgkf/testex

Add tests and assertions in-line in R package examples

testex test examples

CRAN
R CMD check
coverage

Add tests and assertions in-line in examples

Quick Start

Set up your package to use testex using

testex::use_testex()

and then start adding tests!

#' Hello, World!
#' 
#' @examples
#' hello("World")
#' @test "Hello, World!"
#'
#' hello("darkness my old friend")
#' @test grepl("darkness", .)
#' 
#' @export
hello <- function(who) {
  paste0("Hello, ", who, "!")
}

If you were already using testthat, you'll immediately see a new test
context for testing your examples. And if you aren't using testthat, then
you'll find that your tests are being run with your examples when you run
R CMD check

roxygen2 tags

@test

will check that the result of the last example is identical to your test. You
can use the example output in a function using a ..

#' @examples
#' sum(1:10)
#' @test 55
#' @test is.numeric(.)

@testthat

is similar, but has the added benefit of automatically inserting a . into
testthat::expect_* functions.

#' @examples
#' sum(1:10)
#' @testthat expect_equal(55)
#' @testthat expect_vector(numeric())

Prior Art

  • roxytest
    A slightly different approach. Allows tests to be written in-line, but
    generates test files used directly by a testing framework.

Languages

R98.1%SCSS1.6%Rez0.3%

Contributors

Other
Created June 12, 2022
Updated November 17, 2025