runTestSuite {RUnit} | R Documentation |
runTestSuite
is the central function of the RUnit package.
Given one or more test suites it sources all test files and then
executes all test functions as defined by the test suites. During
the execution information about the test function calls including the
possible occurence of failures or errors is stored and returned at the
end of the test run. The return value can then be used to create a
test protocol of various formats.
runTestFile
is just a convenience function for executing the
tests in a single test file.
defineTestSuite
is a helper function to define a test
suite. See below for a precise definition of a test suite.
isValidTestSuite
checks if an object defines a valid test suite.
defineTestSuite(name, dirs, testFileRegexp="^runit.+\.[rR]$", testFuncRegexp="^test.+", rngKind="Marsaglia-Multicarry", rngNormalKind="Kinderman-Ramage") isValidTestSuite(testSuite) runTestSuite(testSuites, useOwnErrorHandler=TRUE) runTestFile(absFileName, useOwnErrorHandler=TRUE, testFuncRegexp="^test.+", rngKind="Marsaglia-Multicarry", rngNormalKind="Kinderman-Ramage")
name |
The name of the test suite. |
dirs |
Vector of absolute directory names where to look for test files. |
testFileRegexp |
Regular expression for test files. |
testFuncRegexp |
Regular expression for test functions. |
rngKind |
name of a valid RNG version (see RNGkind ). |
rngNormalKind |
name of a valid rnorm RNG version (see RNGkind ). |
testSuite |
A single object of class test suite. |
testSuites |
A single object of class test suite or a list of test suite objects. |
useOwnErrorHandler |
If TRUE the RUnit framework installs
its own error handler during test case execution (but reinstalls the
original handler before it returns). If FALSE the error
handler is not touched by RUnit but then the test protocol does not
contain any call stacks in the case of errors. |
absFileName |
Absolute file name of a test function. |
The basic idea of the RUnit test framework is to declare a certain set of functions to be test functions and report the results of their execution. The test functions must not take any parameter nor return anything important such that their execution can be automatised.
The specification which functions are taken as test functions is
contained in an object of class RUnitTestSuite
which is a list
with the following elements.
After the RUnit framework has executed all test suites it returns all
data collected during the test run as an object of class
RUnitTestData
. This is a (unfortunately rather deeply nested)
list with one list element for each executed test suite. Each of these
executed test suite lists contains the following elements:
The sourceFileResults
list just mentioned contains one element
for each test function ion the source file. This elemnt is a list with
the following entries:
success
, error
or failure
describing the outcome of the test function.NULL
for a successful test function.NULL
in the case of an error
or failure.NULL
otherwise.
To further control test case execution it is possible to define two
parameterless function .setUp()
and .tearDown()
in a
test file. .setUp()
is executed directly before and
.tearDown()
directly after each test function.
Quite often, it is useful to base test cases on random numbers. To
make this procedure reproducible, the function runTestSuite
sets the random number generator to the default setting
RNGkind(kind="Marsaglia-Multicarry",
normal.kind="Kinderman-Ramage")
before sourcing each test file
(note that this default has been chosen due to historical reasons and
differs from the current R default). This default can be overwritten
by configuring the random number generator at the beginning of a test
file. This setting, however, is valid only inside its own source file
and gets overwritten when the next test file is sourced.
runTestSuite
and runTestFile
both return an object of
class RUnitTestData.
defineTestSuite
returns an object of class RUnitTestSuite
.
Thomas K"onig, Klaus J"unemann & Matthias Burger
checkTrue
and friends for writing test cases.
printTextProtocol
and printHTMLProtocol
for printing the test protocol.
## run some test suite myTestSuite <- defineTestSuite("my test suite", "tests") testData <- runTestSuite(myTestSuite) ## prints detailed text protocol ## to standard out: printTextProtocol(testData, showDetails=TRUE)