skip_if()
and skip_if_not()
allow you to skip tests, immediately
concluding a test_that()
block without executing any further expectations.
This allows you to skip a test without failure, if for some reason it
can't be run (e.g. it depends on the feature of a specific operating system,
or it requires a specific version of a package).
See vignette("skipping")
for more details.
Usage
skip(message = "Skipping")
skip_if_not(condition, message = NULL)
skip_if(condition, message = NULL)
skip_if_not_installed(pkg, minimum_version = NULL)
skip_if_offline(host = "captive.apple.com")
skip_on_cran()
skip_on_os(os, arch = NULL)
skip_on_ci()
skip_on_covr()
skip_on_bioc()
skip_if_translated(msgid = "'%s' not found")
Arguments
- message
A message describing why the test was skipped.
- condition
Boolean condition to check.
skip_if_not()
will skip ifFALSE
,skip_if()
will skip ifTRUE
.- pkg
Name of package to check for
- minimum_version
Minimum required version for the package
- host
A string with a hostname to lookup
- os
Character vector of one or more operating systems to skip on. Supported values are
"windows"
,"mac"
,"linux"
, and"solaris"
.- arch
Character vector of one or more architectures to skip on. Common values include
"i386"
(32 bit),"x86_64"
(64 bit), and"aarch64"
(M1 mac). Supplyingarch
makes the test stricter; i.e. bothos
andarch
must match in order for the test to be skipped.- msgid
R message identifier used to check for translation: the default uses a message included in most translation packs. See the complete list in
R-base.pot
.
Helpers
skip_if_not_installed("pkg")
skips tests if package "pkg" is not installed or cannot be loaded (usingrequireNamespace()
). Generally, you can assume that suggested packages are installed, and you do not need to check for them specifically, unless they are particularly difficult to install.skip_if_offline()
skips if an internet connection is not available (usingcurl::nslookup()
) or if the test is run on CRAN. Requires {curl} to be installed and included in the dependencies of your package.skip_if_translated("msg")
skips tests if the "msg" is translated.skip_on_bioc()
skips on Bioconductor (using theIS_BIOC_BUILD_MACHINE
env var).skip_on_cran()
skips on CRAN (using theNOT_CRAN
env var set by devtools and friends).skip_on_covr()
skips when covr is running (using theR_COVR
env var).skip_on_ci()
skips on continuous integration systems like GitHub Actions, travis, and appveyor (using theCI
env var).skip_on_os()
skips on the specified operating system(s) ("windows", "mac", "linux", or "solaris").
Examples
if (FALSE) skip("Some Important Requirement is not available")
test_that("skip example", {
expect_equal(1, 1L) # this expectation runs
skip('skip')
expect_equal(1, 2) # this one skipped
expect_equal(1, 3) # this one is also skipped
})
#> ── Skip: skip example ────────────────────────────────────────────────────
#> Reason: skip
#>