CleanupReporter takes an existing testthat Reporter object, and
wraps it, so it checks for leftover child processes, at the specified
place, see the proc_unit argument below.
CleanupReporter(reporter = testthat::ProgressReporter)New reporter class that behaves exactly like reporter,
but it checks for, and optionally cleans up child processes, at the
specified granularity.
A testthat reporter to wrap into a new CleanupReporter
class.
This is how to use this reporter in testthat.R:
library(testthat)
library(mypackage)if (ps::ps_is_supported()) {
reporter <- ps::CleanupReporter(testthat::ProgressReporter)$new(
proc_unit = "test", proc_cleanup = TRUE)
} else {
## ps does not support this platform
reporter <- "progress"
}
test_check("mypackage", reporter = reporter)
Child processes can be reported via a failed expectation, cleaned up silently, or cleaned up and reported (the default).
The constructor of the CleanupReporter class has options:
file: the output file, if any, this is passed to reporter.
proc_unit: when to perform the child process check and cleanup.
Possible values:
"test": at the end of each testthat::test_that() block
(the default),
"testsuite": at the end of the test suite.
proc_cleanup: Logical scalar, whether to kill the leftover
processes, TRUE by default.
proc_fail: Whether to create an expectation, that fails if there
are any processes alive, TRUE by default.
proc_timeout: How long to wait for the processes to quit. This is
sometimes needed, because even if some kill signals were sent to
child processes, it might take a short time for these to take effect.
It defaults to one second.
rconn_unit: When to perform the R connection cleanup. Possible values
are "test" and "testsuite", like for proc_unit.
rconn_cleanup: Logical scalar, whether to clean up leftover R
connections. TRUE by default.
rconn_fail: Whether to fail for leftover R connections. TRUE by
default.
file_unit: When to check for open files. Possible values are
"test" and "testsuite", like for proc_unit.
file_fail: Whether to fail for leftover open files. TRUE by
default.
conn_unit: When to check for open network connections.
Possible values are "test" and "testsuite", like for proc_unit.
conn_fail: Whether to fail for leftover network connections.
TRUE by default.