From https://testthat.r-lib.org/reference/test_dir.html#special-files:
Helper files start with helper and are executed before tests are run. They're also loaded by devtools::load_all() , so there's no real point to them and you should just put your helper code in R/ .
This means that any packages I use for testing only, e.g. rprojroot can no longer be suggests, but must be imports. And what about custom skip functions? They are irrelevant for the package and only used for testing.
It has been a good philosopy to separate tests from worker code. Why is there no longer a "real point" in it?
The many other changes required for testthat 3.0 are annoying and require a huge amount of work - I have no idea yet how to get rid of the many warnings created by calling third party packages.
We have decided not to use testthat in future packages, and to avoid using tidyverse in packages. tidyverse is great for shoot-and-forget reports, but it is just too much hassle to keep up with all the tibble-et-al changes.