./devel/R-testthat, Unit testing for R

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.0.1, Package name: R-testthat-3.0.1, Maintainer: pkgsrc-users

Software testing is important, but, in part because it is frustrating
and boring, many of us avoid it. 'testthat' is a testing framework for
R that is easy to learn and use, and integrates with your existing
'workflow'.


Required to run:
[math/R] [devel/R-evaluate] [security/R-digest] [devel/R-magrittr] [devel/R-crayon] [devel/R-R6] [devel/R-cli] [devel/R-rlang] [devel/R-withr] [math/R-ellipsis] [misc/R-praise] [devel/R-pkgload]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)


Version history: (Expand)


CVS history: (Expand)


   2021-01-01 05:28:36 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
(devel/R-testthat) Updated 3.0.0 to 3.0.1

# testthat 3.0.1

* New `testthat.progress.verbose_skips` option. Set to `FALSE` to stop
  reporting skips as they occur; they will still appear in the summary
  (#1209, @krlmlr).

* `CheckReporter` results have been tweaked based on experiences from running
  R CMD check on many packages. Hopefully it should now be easier to see
  the biggest problems (i.e. failures and errors) while still having
  skips and warnings available to check if needed (#1274). And now the full
  test name is always shown, no matter how long (#1268).

* Catch C++ tests are no longer reported multiple times (#1237) and
  are automatically skipped on Solaris since Catch is not supported (#1257).
  `use_catch()` makes it more clear that your package needs to suggest
  xml2 (#1235).

* `auto_test_package()` works once again (@mbojan, #1211, #1214).

* `expect_snapshot()` gains new `error` argument which controls whether or not
  an error is expected. If an unexpected error is thrown, or an expected error
  is not thrown, `expect_snapshot()` will fail (even on CRAN) (#1200).

* `expect_snapshot_value(style = "deparse")` handles more common R data
  structures.

* `expect_snapshot_value()` now passes `...` on to `waldo::compare()` (#1222).

* `expect_snapshot_file()` gives a hint as to next steps when a failure
  occurs in non-interactive environments (with help from @maelle, #1179).
  `expect_snapshot_*()` gives a more informative hint when you're running
  tests interactively (#1226).

* `expect_snapshot_*()` automatically removes the `_snaps` directory if
  it's empty (#1180). It also warns if snapshots are discarded because tests
  have duplicated names (#1278, @krlmlr).

* `local_reproducible_output()` now sets the LANGUAGE env var to "en". This
  matches the behaviour of R CMD check in interactive settings (#1213).
  It also now unsets RSTUDIO envvar, instead of setting it to 0 (#1225).

* `RstudioReporter` has been renamed to `RStudioReporter`.

* `skip_if_not()` no longer appends "is not TRUE" to custom messages
  (@dpprdan, #1247).

* `test_that()` now warns (3e only) if code doesn't have braces, since
  that makes it hard to track the source of an error (#1280, @krlmlr).
   2020-12-17 00:41:00 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(devel/R-testthat) Add R-lifecycle, R-jsonlite for DEPENDS
   2020-12-14 04:45:41 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
(devel/R-testthat) Updated 2.3.2 to 3.0.0

# testthat 3.0.0

## 3rd edition

testhat 3.0.0 brings with it a 3rd edition that makes a number of breaking
changes in order to clean up the interface and help you use our latest
recommendations. To opt-in to the 3rd edition for your package, set
`Config/testthat/edition: 3` in your `DESCRIPTION` or use `local_edition(3)` in
individual tests. You can retrieve the active edition with `edition_get()`.
Learn more in `vignette("third-edition")`.

* `context()` is deprecated.

* `expect_identical()` and `expect_equal()` use `waldo::compare()` to
   compare actual and expected results. This mostly yields much more
   informative output when the actual and expected values are different,
   but while writing it uncovered some bugs in the existing comparison
   code.

* `expect_error()`, `expect_warning()`, `expect_message()`, and
  `expect_condition()` now all use the same underlying logic: they
  capture the first condition that matches `class`/`regexp` and
  allow anything else to bubble up (#998/#1052). They also warn if
  there are unexpected arguments that are never used.

* The `all` argument to `expect_message()` and `expect_warning()` is now
  deprecated. It was never a particularly good idea or well documented,
  and is now superseded by the new condition capturing behaviour.

* `expect_equivalent()`, `expect_reference()`, `expect_is()` and
  `expect_that()` are deprecated.

* Messages are no longer automatically silenced. Either use
  `suppressMessages()` to hide unimportant messages, or
  `expect_messsage()` to catch important messages (#1095).

* `setup()` and `teardown()` are deprecated in favour of test fixtures.
  See `vignette("test-fixtures")` for more details.

* `expect_known_output()`, `expect_known_value()`, `expect_known_hash()`,
  and `expect_equal_to_reference()` are all deprecated in favour of
  `expect_snapshot_output()` and `expect_snapshot_value()`.

* `test_that()` now sets a number of options and env vars to make output as
  reproducible as possible (#1044). Many of these options were previously
  set in various places (in `devtools::test()`, `test_dir()`, `test_file()`,
  or `verify_output()`) but they have now been centralised. You can use in
  your own code, or when debugging tests interactively with
  `local_test_context()`.

* `with_mock()` and `local_mock()` are deprecated; please use the mockr
  or mockery packages instead (#1099).

## Snapshot testing

New family of snapshot expectations (`expect_snapshot()`, \ 
`expect_snapshot_output()`, `expect_snapshot_error()`, and \ 
`expect_snapshot_value()`) provide "snapshot" tests, where the \ 
expected results are stored in separate files in `test/testthat/_snaps`. They're \ 
useful whenever it's painful to store expected results directly in the test \ 
files.

`expect_snapshot_file()` along with `snapshot_review()` help snapshot
more complex data, with initial support for text files, images, and data frames \ 
(#1050).

See `vignette("snapshotting")` for more details.

## Reporters

* `CheckReporter` (used inside R CMD check) now prints out all problems
  (i.e. errors, failures, warnings and skips; and not just the first 10),
  lists skips types, and records problems in machine readable format in
  `tests/testthat-problems.rds` (#1075).

* New `CompactProgressReporter` tweaks the output of `ProgressReporter` for
  use with a single file, as in `devtools::test_file()`. You can pick a
  different default by setting `testthat.default_compact_reporter` to
  the name of a reporter.

* `ProgressReporter` (the default reporter) now keeps the stack traces of
  an errors that happen before the before test, making problems substantially
  easier to track down (#1004). It checks if you've exceeded the maximum number
  of failures (from option `testthat.progress.max_fails`) after each
  expectation, rather than at the end of each file (#967). It also gains
  new random praise options that use emoji, and lists skipped tests by type
  (#1028).

* `StopReporter` adds random praise emoji when a single test passes (#1094).
  It has more refined display of failures, now using the same style
  as `CompactProgressReporter` and `ProgressReporter`.

* `SummaryReporter` now records file start, not just context start. This
  makes it more compatible with modern style which does not use `context()`
  (#1089).

* All reporters now use exactly the same format when reporting the location
  of an expectation.

* Warnings now include a backtrace, making it easier to figure
  out where they came from.

* Catch C++ tests now provide detailed results for each test.
  To upgrade existing code, re-run `testthat::use_catch()` (#1008).

## Fixures

* New `vignette("test-fixtures")` describes test fixtures; i.e. how to
  temporarily and cleanly change global state in order to test parts of
  your code that otherwise would be hard to run (#1042). `setup()` and
  `teardown()` are superseded in favour of test fixtures.

* New `teardown_env()` for use with `withr::defer()`. This allows you to
  run code after all other tests have been run.

## Skips

* New `vignette("skipping")` gives more general information on skipping
  tests, include some basics on testing skipping helpers (#1060).

* `ProgressReporter()` and `CheckReporter()` list the number of skipped tests
  by reason at the end of the reporter. This makes it easier to check that
  you're not skipping the wrong tests, particularly on CI services (#1028).

## Test running

* `test_that()` no longer triggers an error when run outside of tests;
  instead it produces a more informative summary of all failures, errors,
  warnings, and skips that occurred inside the test.

* `test_that()` now errors if `desc` is not a string (#1161).

* `test_file()` now runs helper, setup, and teardown code, and has the
  same arguments as `test_dir()` (#968). Long deprecated `encoding` argument
  has been removed.

* `test_dir()` now defaults `stop_on_failure` to `TRUE` for consistency with
  other `test_` functions. The `wrap` argument has been deprecated; it's not
  clear that it should ever have been exposed.

* New `test_local()` tests a local source package directory. It's equivalent
  to `devtools::test()` but doesn't require devtools and all its dependencies
  to be installed (#1030).

## Minor improvements and bug fixes

* testthat no longer supports tests stored in `inst/tests`. This has been
  deprecated since testthat 0.11.0 (released in 2015). `test_package()`
  (previously used for running tests in R CMD check) will fail silently
  if no tests are found to avoid breaking old packages on CRAN (#1149).

* `capture_output()` and `verify_output()` use a new `testthat_print()`
  generic. This allows you to control the printed representation of your
  object specifically for tests (i.e. if your usual print method shows
  data that varies in a way that you don't care about for tests) (#1056).

* `context_start_file()` is now exported for external reporters (#983, #1082).
  It now only strips first instance of prefix/suffix (#1041, @stufield).

* `expect_error()` no longer encourages you to use `class`. This advice
  one type of fragility at the expense of creating a different type (#1013).

* `expect_known_failure()` has been removed. As far as I can tell it was
  only ever used by testthat, and is rather fragile.

* `expect_true()`, `expect_false()`, and `expect_null()` now use waldo to
  produce more informative failures.

* `verify_output()` no longer always fails if output contains a carriage
  return character ("\r") (#1048). It uses the `pdf()` device instead of
  `png()` soit work on systems without X11 (#1011). And it uses
  `waldo::compare()` to give more informative failures.
   2020-09-20 05:28:16 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
(devel/R-testthat) Update 2.3.1 to 2.3.2

# testthat 2.3.2

* Fix R CMD check issues
   2020-02-22 09:12:08 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(devel/R-testthat) Fix build, two DEPENDS+ were missing
   2020-02-15 08:11:02 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(devel/R-testthat) Add TEST_DEPENDS+=  R-devtools
   2020-02-15 07:09:01 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
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).
   2019-09-25 19:21:08 by Brook Milligan | Files touched by this commit (1)
Log message:
Add a missing dependency on devel/R-R6.