If you have a flaky test, you can use try_again()
to run it a few times
until it succeeds. In most cases, you are better fixing the underlying
cause of the flakeyness, but sometimes that's not possible.
Examples
usually_return_1 <- function(i) {
if (runif(1) < 0.1) 0 else 1
}
if (FALSE) { # \dontrun{
# 10% chance of failure:
expect_equal(usually_return_1(), 1)
# 1% chance of failure:
try_again(3, expect_equal(usually_return_1(), 1))
} # }