Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ unittest Public

❗ This is a read-only mirror of the CRAN R package repository. unittest — TAP-Compliant Unit Testing Report bugs for this package: https://github.com/ravingmantis/unittest/issues

Notifications You must be signed in to change notification settings

cran/unittest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRAN version badge CRAN Checks CRAN RStudio mirror total downloads badge CRAN RStudio mirror monthly downloads badge R-CMD-check DOI

unittest: Concise, TAP-compliant, R package for writing unit tests

Given a simple function you'd like to test in the file myfunction.R:

biggest <- function(x,y) { max(c(x,y)) }

A test script for this function test_myfunction.R would be:

library(unittest)

source('myfunction.R')  # Or library(mypackage) if part of a package

ok(biggest(3,4) == 4, "two numbers")
ok(biggest(c(5,3),c(3,4)) == 5, "two vectors")

You can then run this test in several ways:

  • source('test_myfunction.R') from R
  • Rscript --vanilla test_myfunction.R from the command prompt
  • R CMD check, if test_myfunction.R is inside the tests directory of mypackage being tested. unittest doesn't require any further setup in your package.

If writing tests as part of a package, see the "Adding Tests to Packages" vignette for more information.

The workhorse of the unittest package is the ok function which prints "ok" when the expression provided evaluates to TRUE and "not ok" if the expression evaluates to anything else or results in an error. There are several ut_cmp_* helpers designed to work with ok:

  • ok(ut_cmp_equal( biggest(1/3, 2/6), 2/6), "two floating point numbers"): Uses all.equal to compare within a tolerance.
  • ok(ut_cmp_identical( biggest("c", "d") ), "two strings"): Uses identical to make sure outputs are identical.
  • ok(ut_cmp_error(biggest(3), '"y".*missing'), "single argument is an error"): Make sure the code produces an error matching the regular expression.

In all cases you get detailed, colourised output on what the difference is, for example:

Output of ok(ut_cmp_identical(list(1,3,3,4), list(1,2,3,4)))

The package was inspired by Perl's Test::Simple.

If you want more features there are other unit testing packages out there; see testthat, RUnit, svUnit.

Installing from CRAN

In an R session type

install.packages('unittest')

Or add Suggests: unittest to your package's DESCRIPTION file.

Installing the latest development version directly from GitHub

To install the latest development version, use remotes:

# install.packages("remotes")
remotes::install_github("ravingmantis/unittest")

About

❗ This is a read-only mirror of the CRAN R package repository. unittest — TAP-Compliant Unit Testing Report bugs for this package: https://github.com/ravingmantis/unittest/issues

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages