[R-pkg-devel] Submitting a package whose unit tests sometimes fail because of server connections
Dirk Eddelbuettel
edd @end|ng |rom deb|@n@org
Tue Apr 16 20:16:01 CEST 2019
On 16 April 2019 at 11:40, Will wrote:
| Some things I have considered include:
|
| 1. Skipping all unit tests on CRAN (using something like
| *testtht::skip_on_cran*). This would immediately fix the problem, and as
| a mitigating factor we report automated test result and coverage on the
| package's GitHub page (https://github.com/ropensci/suppdata).
| 2. Using HTTP-mocking to avoid requiring a call to a server during tests
| at all. I would be uncomfortable relying solely on this for all tests,
| since if the data hosters changed things we wouldn't know. Thus I would
| still want the Internet-enabled tests, which would also have to be turned
| off for CRAN (see 1 above). This would also be a lot of additional work.
| 3. Somehow bypassing the requirement for the unit tests to all pass
| before the package is checked by the CRAN maintainers. I have no idea if
| this is something CRAN would be willing to do, or if it is even possible.
| It would be the easiest option for me, but I don't want to create extra
| work for other people!
| 4. Slowing the tests with something like *Sys.sleep*. This might work,
| but would slow the tests massively and so might that cause problems for
| CRAN?
|
| Does anyone have any advice as to which of the above would be the best
| option, or who I should email directly about this?
5. Run a hybrid scheme where you have multiple levels:
5.1 Do what eg Rcpp does and only opt into 'all tests' when an overall
variable is set; that variable can be set conveniently in .travis.yml
and conditionally in your test runner below ~/tests/
That way you can skip tests that would fail.
5.2 Do a lot of work and wrap 3. above into try() / tryCatch() and pass
if _your own aggregation of tests_ passes a threshold.
Overkill to me.
5.3 Turn all tests on / off based on some other toggle. I.e. I don't think
I test all features of RcppRedis on CRAN as I can't assume a redis
server, but I do run those tests at home, on Travis, ...
Overall, I would recommend to 'keep it simple & stupid' (KISS) as life is to
short to argue^Hdebate this with CRAN. And their time is too precious so we
should try to make their life easier.
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
More information about the R-package-devel
mailing list