These functions define the code of test functions. They are designed to check the result of some test calculation.
Log(description = NULL)
createLog(description = NULL, deleteExisting = FALSE)
clearLog()
errorLog(stopit = TRUE, summarize = TRUE)
lastTest()
lastSuite()
A (short) character string describing this test suite log.
Do we delete an existing a .Log
object already
defined in .GlobalEnv
(no, by default)?
Do we issue an error (stop()
in case of any error or failure?
This is particularly useful if you want to interrupt R CMD check on packages,
when you included one or more test suites in examples (see ?unitTests
).
Should the summary of the log be printed in case we stop
execution of the code when an error is found (see stopit =
argument. It is,
indeed, useful to indicate at this time which tests failed or raised an
error. So, this argument should usually be left at its default value.
Log()
and createLog()
return the .Log
object defined in .GlobalEnv
by
reference (it is indeed an environment). So, you can use its content (and
change it, if you write functions to manipulate this log).
clearLog()
return invisibly TRUE
or FALSE
, depending if an existing log
object was deleted or not.
errorLog()
is mainly used for its side-effect of stopping code execution
and/or printing a summary of the test runs in the context of example
massaging in R CMD check (see the "Writing R extensions" manual). However,
this function also returns invisibly a contingency table with the number of
successes, failures, errors and deactivated tests recorded so far.
lastTest()
and lastSuite()
recall results of last test and last suite
run, respectively.
svUnit records results of assertions (using the checkxxx() functions) in a
'svSuiteData' object named .Log
and located in .GlobalEnv. Hence, this log
is easy to access. However, in order to avoid errors in your code in case
this object was deleted, or not created, it is better to access it using
Log()
which take care to create the object if it is missing.
clearLog() # Clear the svUnit log
# Two correct tests
(checkTrue(1 < 2))
#> [1] TRUE
(checkException(log("a")))
#> [1] TRUE
errorLog() # Nothing, because there is no error
if (FALSE) {
(checkTrue(1 > 2)) # This test fails
lastTest() # Print results of last test
errorLog() # Stop and summarize the tests run so far
}
clearLog()