# Note that you would never run this file directly. This is used by tools::testInstallPackages()
# and other packages like covr.
# To actually run the tests, you need to set the working directory to pkgnet
# and then run devtools::test()
# This line ensures that R CMD check can run tests.
# See https://github.com/hadley/testthat/issues/144
Sys.setenv("R_TESTS" = "")
####### TESTING ON vs. OFF CRAN #############
# Due to complications on CRAN with handling of temporary packages during testing, continuous integration (CI)
# and local testing will remain the main test processes for pkgnet.
# See https://github.com/uptake/pkgnet/issues/160 for details on this decision.
cat("testthat.R | NOT_CRAN =", Sys.getenv("NOT_CRAN"), "\n")
if(identical(Sys.getenv("NOT_CRAN"), "true")){
######## CI and LOCAL TEST PROCEDURE #############
# Check if setup and helper funs have been run.
# If in R CMD CHECK, they may not have been run yet.
Sys.setenv(PKGNET_REBUILD = identical(Sys.getenv('PKGNET_TEST_LIB'), ''))
# If not yet run, rebuild
if (Sys.getenv('PKGNET_REBUILD')){
library(pkgnet)
## ******************************************************************************************
## THIS IS THIS SAME CONTENT as setup_setTestEnv.R but neccessary to paste here due to
## CI checks.
## ******************************************************************************************
# [DEBUG] write("PKGNET_REBUILD triggered", file = "~/thing.txt", append = TRUE)
# record original libpaths in order to reset later.
# This should be unnecessary since tests are conducted within a seperate enviornment.
# It's done out of an abundance of caution.
origLibPaths <- .libPaths()
# Set the pkgnet library for testing to a temp directory
Sys.setenv(PKGNET_TEST_LIB = tempdir())
# Set the libpaths for testing.
# This has no effect to global libpaths since testing tests are conducted within a
# seperate enviornment.
.libPaths(
new = c(Sys.getenv('PKGNET_TEST_LIB'), origLibPaths)
)
# Install Fake Packages - For local testing if not already installed
pkgnet:::.BuildTestLib(
targetLibPath = Sys.getenv('PKGNET_TEST_LIB')
)
# [DEBUG] write(paste0("PKGNET_TEST_LIB: ", Sys.getenv('PKGNET_TEST_LIB')), file = "~/thing.txt", append = TRUE)
# [DEBUG] write(list.files(Sys.getenv('PKGNET_TEST_LIB'), recursive = TRUE), file = "~/thing.txt", append = TRUE)
}
# This withr statement should be redundant.
# This is within a test environment in which .libpaths() has been altered to include PKGNET_TEST_LIB.
# Yet, it appears to be necessary.
withr::with_libpaths(
new = .libPaths()
, code = {testthat::test_check('pkgnet')}
)
# Tear down temporary test enviorment
if (Sys.getenv('PKGNET_REBUILD')){
## ******************************************************************************************
## THIS IS THIS SAME CONTENT as teardown_setTestEnv.R but neccessary to paste here due to
## CI checks.
## ******************************************************************************************
# [DEBUG] write("PKGNET_REBUILD tear-down triggered", file = "~/thing.txt", append = TRUE)
# Uninstall Fake Packages From Test Library if Not Already Uninstalled
try(
utils::remove.packages(
pkgs = c('baseballstats', 'sartre', 'milne', 'pkgnet')
, lib = Sys.getenv('PKGNET_TEST_LIB')
)
)
# Reset libpaths.
# This should be unnecessary since tests are conducted within a seperate enviornment.
# It's done out of an abundance of caution.
.libPaths(origLibPaths)
# Remove test libary path eviornment variable.
Sys.unsetenv('PKGNET_TEST_LIB')
}
} else {
######## ON CRAN TEST PROCEDURE #############
testthat::test_check(package = "pkgnet"
, filter = "cran-true"
, load_helpers = FALSE
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.