Log message:
(devel/R-testthat) Updated 2.2.1 to 2.3.1
# testthat 2.3.1
* The last version of testthat introduced a performance regression in
error assertions (#963). To fix it, you need to install rlang 0.4.2.
* Fixed error assertions with rJava errors (#964).
* Fixed issue where error and warning messages were not retrieved with
`conditionMessage()` under certain circumstances.
# testthat 2.3.0
## Conditions
This release mostly focusses on an overhaul of how testthat works with \
conditions (i.e. errors, warnings and messages). There are relatively few \
user-facing changes, although you should now see more informative backtraces \
from errors and failures.
* Unexpected errors are now printed with a simplified backtrace.
* `expect_error()` and `expect_condition()` now display a backtrace
when the error doesn't conform to expectations (#729).
* `expect_error()`, `expect_warning()` and `expect_message()` now call
`conditionMessage()` to get the condition message. This generic
makes it possible to generate messages at print-time rather than
signal-time.
* `expect_error()` gets a better warning message when you test for a custom
error class with `regexp`.
* New `exp_signal()` function is a condition signaller that
implements the testthat protocol (signal with `stop()` if the
expectation is broken, with a `continue_test` restart).
* Existence of restarts is first checked before invokation. This makes
it possible to signal warnings or messages with a different
condition signaller (#874).
* `ListReporter` now tracks expectations and errors, even when they occur
outside of tests. This ensures that `stop_on_failure` matches the results
displayed by the reporter (#936).
* You can silence warnings about untested error classes by
implementing a method for `is_uninformative_warning()`. This method
should be lazily registered, e.g. with `vctrs::s3_register()`. This
is useful for introducing an experimental error class without
encouraging users to depend on the class in their tests.
* Respect options(warn = -1) to ignore all warnings (@jeroen #958).
## Expectations
* Expectations can now be explicitly subclassed with
`new_expectation()`. This constructor follows our new conventions
for S3 classes and takes an optional subclass and optional
attributes.
* Unquoted inputs no longer potentially generate multiple test messages (#929).
* `verify_output()` no longer uses quasiquotation, which fixes issues
when verifying the output of tidy eval functions (#945).
* `verify_output()` gains a `unicode` parameter to turn on or off the
use of Unicode characters by the cli package. It is disabled by
default to prevent the tests from failing on platforms like Windows
that don't support UTF-8 (which could be your contributors' or your
CI machines).
* `verify_output()` now correctly handles multi-line condition
messages.
* `verify_output()` now adds spacing after condition messages,
consistent with the spacing added after normal output.
* `verify_output()` has a new syntax for inserting headers in output
files: insert a `"# Header"` string (starting with `#` as in
Markdown) to add a header to a set of outputs.
## Other minor improvements and bug fixes
* `compare.numeric()` uses a more sophisticated default tolerance that will
automatically skip tests that rely on numeric tolerance if long doubles are
not available (#940).
* `JunitReporter` now reports tests in ISO 8601 in the UTC timezone and
uses the maximum precision of 3 decimal places (#923).
|