#!/usr/bin/env -S r -t
#
# testthat::test_file wrapper
#
# Copyright (C) 2019 - 2024 Dirk Eddelbuettel
#
# Released under GPL (>= 2)
if (!requireNamespace("testthat", quietly=TRUE))
stop("Please install 'testthat' from CRAN.", call. = FALSE)
## load docopt and tinytest from CRAN
suppressMessages({
library(docopt) # we need docopt (>= 0.3) as on CRAN
})
## configuration for docopt
doc <- "Usage: tttf.r [-l LIB] [-s FILE] [-c] [-d] [-h] [-x] ARG
-l --library LIB load named library, LIB can be comma-separated
-s --source FILE source a named file
-d --loadall run `devtools::load_all()`
-c --ci set environment variable CI to TRUE [default: FALSE]
-h --help show this help text
-x --usage show help and short example usage"
opt <- docopt(doc) # docopt parsing
if (opt$usage) {
cat(doc, "\n\n")
cat("where ARG can be a package directory.
Examples:
tttf.r test-testfile.r # run test_file() on the given file
tttf.r is part of littler which brings 'r' to the command-line.
See https://dirk.eddelbuettel.com/code/littler.html for more information.\n")
q("no")
}
if (!is.null(opt$library)) {
for (s in strsplit(opt$library, ",")[[1]]) {
library(s, character.only=TRUE, verbose=TRUE)
}
}
if (!file.exists(opt$ARG)) {
stop("No such file.", call. = FALSE)
}
if (!is.null(opt$source) && file.exists(opt$source)) {
source(opt$source)
}
if (opt$ci) {
Sys.setenv(CI="TRUE")
}
if (opt$loadall) {
suppressMessages(devtools::load_all())
}
testthat::test_file(path=opt$ARG)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.