--- title: "Testing" output: github_document vignette: | %\VignetteIndexEntry{Testing} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ## Summary Just as the library has a higher line-count of code autogenerated by OpenAPI, and a lower line-count of manual-layer files, so too with testing. In `tests/testthat` are many autogenerated files -- with function bodies written commented out by OpenAPI. We do not focus our testing in this direction. ## Opting in In `inst/tinytest` are manually written tests. These are opt-in: they make TileDB Cloud calls, which we don't want to push on all users who build the package locally. To opt in: * Have either environment variable `TILEDB_REST_TOKEN`, or the pair `TILEDB_REST_USERNAME` and `TILEDB_REST_PASSWORD` -- or all three if you like. * You will also need environment variable `TILEDB_REST_UNIT_TEST_NAMESPACE_TO_CHARGE` for the (very minor) cloud costs associated with invoking UDFs. * Optionally, `TILEDB_REST_HOST` if your cloud installation is local, and/or for TileDB employees pointing at our staging environment. * In R: `tinytest::test_all(".")` ## Debug information * `export TILEDB_CLOUD_R_HTTP_DEBUG=true` before launching R will result in helpful printouts to the screen of HTTP requests and responses. * Alternatively, once inside R, you can do `Sys.setenv(TILEDB_CLOUD_R_HTTP_DEBUG='true')`. ## Running tests interactively At the shell prompt: ``` unset TILEDB_REST_USERNAME unset TILEDB_REST_PASSWORD export TILEDB_REST_UNIT_TEST_NAMESPACE_TO_CHARGE=unittest export TILEDB_REST_TOKEN="..." Rscript -e 'tinytest::test_all(".")' Rscript -e 'tinytest::run_test_file("inst/tinytest/test_b_array.R")' ``` At the R prompt: ``` tinytest::test_all(".") tinytest::run_test_file("inst/tinytest/test_c_udf_execution.R") traceback() ```