NEWS
tinytest 1.4.2
- expect_condition now uses conditionMessage internally. This
should increase compatibility with packages defining custom
conditions. (thanks to Tim Taylor for suggesting and Etienne Bacher
for reporting)
- expect_match is now available when testing packages (thanks to
Tim Taylor for the PR and Marcel Ramos for reporting)
- fix in pattern matching for warnings (thanks for Matthijs Berends
for the PR)
- Fixed exit_if_not() that would always exit (thanks to Vincent
Arel-Bundock for reporting)
tinytest 1.4.1 (2023-02-21)
- expect_warning and expect_message gain argument 'strict'. This toggles
between failing when an exception worse than the expected one is thrown.
(Thanks to Joshua Ulrich for the suggestion)
- New function 'expect_length' checks length of object (thanks to Marcel Ramos
for suggesting).
- New function 'exit_if': conditionally exit a test file, akin to stopifnot.
(Thanks to Grant McDermott for triggering this).
- New function 'expect_match' to test whether string output(s) match a
regular expression (Thanks to Aaron Jacobs for the suggestion).
- package has no logo now, thanks to Reto Stauffer!
- 'build_install_test' gains 'color' argument (thanks to Tim Taylor
for suggesting)
- 'run_test_file' and 'build_install_test' gain 'encoding' argument that
is passed to 'parse' for reading test files (thanks to Vincent Goulet
for suggesting).
- exit_file() is now safeguarded against non-character argument.
- Fixed reporting issue for class labels on conditions. (thanks to dherz
for reporting)
- Fixed bug: multiple extension packages are now possible (thanks
to Vincent Arel-Bundock for the PR)
tinytest 1.3.1 (2021-07-06)
- expect_error, _warning, _message, _stdout now accept ... arguments
that are passed as extra arguments to 'grepl', when a pattern is
provided (Thanks to Bart-Jan van Rossum for the GH issue).
- Package now also resets locale settings after each file run,
and 'report_side_effects' also tracks changes in locale settings.
- Run test directories via RStudio addin. (Thanks to Matthijs Berends
for PR #83)
- tinytest used to implicitly depend on R >= 3.2.0 because of using
'trimws' and 'dir.exists'. (Thanks to Sebastian Meyer for figuring
this out and thanks to Matthijs Berends for PR #84 solving this)
- 'tinytest' objects now store the stack trace as a list of calls. When
needed, the relevant part of the trace is printed, but only when printing the
long form. (thanks to Jonas Kristoffer Lindeloef for suggesting)
- Improved printing while running tests
- Graphics produced in tests are now written to nullfile() (Thanks to Henrik
Bengtsson for the suggestion). (nullfile() is defined in-package when
built on R < 3.6.0).
- Fixed time measurement when directory (or pkg) is tested and tests take more
than an minute.
- Fix: set_env variables would not be unset in all cases (Thanks to Henrik
Bengtsson for the PR)
- Fix in 'expect_equal': reporting in case of differing attributes (Thanks to
Ott Toomet for reporting #80).
- Fix in build_install_test: better reading of DESCRIPTION file (Thanks
to Christof Stepper for PR #87)
tinytest 1.2.4 (2020-12-17)
- 'test_package' gains 'lib.loc' argument.
- New function 'expect_inherits' to check the class of an object (thanks
to Sebastian Meyer for suggesting).
- Printing of file exit message is now shorter and on same line as test
report (thanks for Dirk Eddelbuettel for suggesting).
- Duration per file is now reported, total duration is stored (thanks
to Dirk Eddelbuettel for suggesting)
- Small improvements in difference reporting.
- Fix: avoid truncated printing in case of long diff reporting (thanks to
Sebastian Meyer for the PR)
- Fix: default pattern for test files was "^test_", is now "^test"
as documented. (Thanks to Sebastian Meyer for the PR).
- Fix: it is now easier to put tests that you do not want to
install under /tests/somedir.
- Internal: updated tinytest.format method to conform to new
R CMD check demand. (Thanks to Brian Ripley for the warning).
tinytest 1.2.3 (2020-10-07)
- Added example to using tinytest vignette on mocking databases
(Thanks to Thomas Fuchs for working this out).
- 'expect_stdout' now handles multi-line output. (Thanks to John Blischak for
reporting).
- A message is issued when a test file uses 'tinytest::expect': such tests
are not registered (thanks to James Thompson for issuing a ticket on this).
tinytest 1.2.2 (2020-06-18)
- Improved diff reporting in expect_true, and expect_false.
- 'build_install_test' gains arguments 'lc_collate' and 'pattern', which are
now passed to 'run_test_dir'. (Thanks to Patrick Breheny for reporting).
tinytest 1.2.1 (2020-05-18)
- expect_message() now also detects occurrence of any message, and not
just the first. Detecting only the first was introduced in 1.2.0 and
reported at GH issue #51 (Thanks to Jozef Hajnala and Ralf Herold).
- Better 'diff' information for expect_warning() and expect_message().
tinytest 1.2.0 (2020-05-06)
- 'run_test_file' gains argument 'set_env'. Set environment variables during a
test run.
- New functions 'expect_equal_to_reference' and 'expect_equivalent_to_reference'
comparing/storing an object with/to an RDS file (Thanks to Jon Clayden for
suggesting).
- New function 'expect_stdout' compares output of e.g. 'print' and 'cat'
statements to a user-defined pattern. (Thanks to Michel Lang for suggesting).
- New function get_call_wd() returns working directory, active when tests were
invoked. (Thanks to Maja Zaloznik for the idea)
- Functions 'expect_error', 'expect_warning', and 'expect_message' gain 'class'
argument, that can be used to check whether a signaling condition inherits
from a certain class. (thanks to Michel Lang for suggesting)
- Argument 'tol' now renamed 'tolerance'. Also removed internal reliance on
partial argument matching (Thanks to Michel Lang).
- Updated documentation on how to extend tinytest with new recommendation.
- Using tinytest vignette gains section on testing internal functions.
- Breaking: function 'expect_message' no longer intercepts messages sent
to stdout (e.g. via 'print' or 'cat'), but only messages send as a 'message'
condition (Thanks to Michel Lang for pointing this out).
- Fix: 'test_package' would return NULL when called interactively and the package
contained a failing test.
tinytest 1.1.0 (2019-09-26)
- Tests are now run with 'pdf(file=tempfile())' as graphics device. This avoids
writing 'Rplots.pdf' under the library directory when R CMD check is run.
- Side-effects tracking now includes file operations in the test directory or
subdirectories thereof.
- build_install_test now accepts arguments 'side_effects', 'remove_side_effects'
- expect_* functions gain argument 'info': a user-defined message that is
printed in long output format.
- 'run_test_dir' now selects files with "^test.*\\.[rR]$", not "^test.*\\.[rR]"
(thanks to Dirk Eddelbuettel).
- Fixed 'diff' message for scalar comparisons in expect_equivalent,
expect_equal, expect_identical: 'target' and 'current' were switched in
message (thanks to GH user Billy34).
- 'setup_tinytest' now keeps formatting for DESCRIPTION files (thanks to
Bart-Jan van Rossum).
- Fixed crash of 'build_install_test' when pkg was developed under directory
with spaces (thanks to Bart-Jan van Rossum).
- Fixed issue where R CMD check would hang when packages use paralellization (GH #36)
or certain Rcpp features (GH #37). Thanks to George G Vega Yon and Dirk Eddelbuettel.
tinytest 1.0.0 (2019-08-23)
- New argument 'side_effects' for test runners: monitor side effects while running tests.
- New function 'report_side_effects': toggle monitoring side-effects within test files.
- Run test files in parallel, for example: test_package("pkg", ncpu=2). (Thanks
to Dirk Eddelbuettel for the suggestion).
- New function 'exit_file': stop running a test file with an optional message.
- Other packages can now extend the package, see '?register_tinytest_extension'
for the API (Thanks to Michel Lang for the suggestion)
- New function 'using' loads tinytest extension package.
- New function 'expect_null'
- Improved reporting for 'expect_true', 'expect_false'
- Improved reporting for expect_identical, expect_true, expect_equivalent
in the case of scalar values.
- Added second vignette with real-life examples of tinytest tests.
- build_install_test gains argument 'color' and 'verbose'
- test_package returns result visibly in interactive sessions.
- Fixed path issue for build_install_test on Windows (thanks to Jan Wijffels)
tinytest 0.9.6 (2019-06-28)
- Fixed error caught on CRAN
tinytest 0.9.5
- New function 'expect_message'.
- New functions 'all_pass', 'all_fail', 'any_pass', 'any_fail' for investigating
'tinytests' objects.
- When ‘interactive()', ’test_package' will not throw an error upon a failing
test. Still throws an error when not 'interactive()'. This makes it more
usefull for interactive testing of installed packages.
- 'test_package()' now returns a 'tinytests' object.
- Better 'verbosity' while running test files (thanks to Dirk Eddelbuettel for
discussions and feedback)
- Added 'test_silent'. Check for lack of errors or warnings (Thanks to Bryan
Hanson for the suggestion, #14)
- Colored output is turned off automatically when the pkg is loaded
in a "dumb" terminal. (Thanks to Dirk Eddelbeutel for the suggestion, #12).
- Improved documentation, including on how to skip tests on CRAN.
- Improved vignette layout (thanks to Dirk Eddelbuettel's suggestions and initial
PR #15 for geometry settings)
- Improved behavior of 'setup_tinytest()' when a 'Suggests' field is
already present in DESCRIPTION
- Fix: toleracence was not passed to 'all.equal' by 'expect_equal' and
'expect_equivalent' (Thanks to An Chu #17)
- Fix 'expect_warning' and 'expect_error' would crash when run on the CLI.
(Thanks to Bryan Hanson #13)
- Fix: method dispatch in packages defining S4 methods now works.
- Fix: 'setup' now adds 'tinytest' to 'Suggests:' rather then adding an
extra 'Suggests' field in DESCRIPTION.
- Corrections in README and vignette, thanks to GH user 'salim-b' PR #18, #19
- Internal: simplified code for 'expect_warning' and 'expect_error'
(thanks to Lionel Henry for suggestions).
tinytest 0.9.4 (2019-06-05)
- New function 'setup_tinytest' that adds 'tinytest' infrastructure to a
package source directory.
- Global settings set by 'options' and 'Sys.setenv' in a test file are
automatically removed after running a test file. This improves independence
between test files. This default can be overwritten, see Chapter 3 of the
'Using tinytest' vignette.
- Test file sorting order can be controlled with 'lc_collate' option in test
runners or by setting options(tt.collate) globally.
- More control over testing packages in 'R CMD check' with extra arguments
to 'test_packages'.
- Improved call reporting in case of multiline test expressions (for example
when many test expressions depend on an 'if' condition).
- Fix in 'expect_warning' and 'expect_error'. In some circumstances evaluation
argument 'current' evaluated in the wrong scope, resulting in unfound variables.
tinytest 0.9.3 (2019-05-10)
- New function 'expect_identical'
- All functions of the form 'expect_lol' can now also be called as 'checkLol'
(similar to, but not the same as 'RUnit' syntax)
- Expect_* functions now have first argument 'current' and second argument 'target'
- Added 'summary' method for objects of class 'tinytests'
- Default test directory is now 'inst/tinytest'
- Fix: 'as.data.frame' crashed on tinytests object with all tests passing.
tinytest 0.9.2 (2019-04-25)
- Processed review by CRAN team member.
- Output coloring is now optional.
- Fixed issue so package works correctly with r-oldrel.
tinytest 0.9.1
- Fixed a few CRAN warnings.
tinytest 0.9.0