Prepare a directory for orderly to useSource:
For interactive testing of orderly code. This runs through and sets everything up as orderly would (creates a new working directory and copies files into it, pulls data from the database, copies over any dependent reports) but then rather than running the report hands back to the user.
orderly_test_start( name, parameters = NULL, envir = parent.frame(), root = NULL, locate = TRUE, instance = NULL, use_draft = FALSE, remote = NULL ) orderly_test_check(path = NULL)
Name of the report to run (see
orderly_list()). A leading
src/will be removed if provided, allowing easier use of autocomplete.
Parameters passed to the report. A named list of parameters declared in the
orderly.yml. Each parameter must be a scalar character, numeric, integer or logical.
The parent of the environment that will be used to evaluate the report script; by default a new environment will be made with the global environment as the parent.
The path to an orderly root directory, or
NULL(the default) to search for one from the current working directory if
Logical, indicating if the configuration should be searched for. If
configis not given, then orderly looks in the working directory and up through its parents until it finds an
Select instance of the source database to be used, where multiple instances are configured. Use a single unnamed character string to indicate an instance to match. If given, then this name must be present in all databases where instances are listed in
orderly_config.yml, and will be ignored by all database where instances are not given. See the "orderly" vignette for further information.
Should draft reports be used for dependencies? This should be used only in development. Valid values are logical (
FALSE) or use the string
newerto use draft reports where they are newer than archive reports. For consistency,
neverare equivalent to
Remote to use to resolve dependencies. Use this in order to run a report with the same dependencies as are available on a remote server, particularly when using
id = "latest". Note that this is not the same as running
remote = NULL, as the pull/run approach will use the latest report in your archive but the
remote = "remote"approach will use the latest approach in the remote archive (which might be less recent).
Path to the report that is currently being run
Previous versions of orderly changed into the created directory
orderly::orderly_test_start, which allowed
interactive testing of a report, including ensuring that it has
created all expected outputs. However, CRAN rules do not allow
changing the working directory, which significantly reduces the
usefulness of this function - as such we may remove it entirely in
a future version of orderly if it does not prove useful in this
more limited form.
The new suggested workflow is:
orderly_test_start(...)to prepare a report directory
manually change into that directory following the printed instructions
orderly_test_checkto check that your report has created the expected artefacts
manually change back to your original directory
path <- orderly::orderly_example("minimal") p <- orderly::orderly_test_start("example", root = path) #> [ name ] example #> [ id ] 20220118-093902-fcd43545 #> [ start ] 2022-01-18 09:39:02 #> [ data ] source => dat: 20 x 2 #> orderly has prepared your files at the path #> #> /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/RtmpMWUKEw/file17e3b9fac7d/draft/example/20220118-093902-fcd43545 #> #> but unfortunately due to CRAN policies we cannot change the #> directory to that path. In order to continue testing your #> report interactively, please run #> #> setwd("/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/RtmpMWUKEw/file17e3b9fac7d/draft/example/20220118-093902-fcd43545") #> #> you will be responsible for getting back to your previous working #> directory after this, which you can do with #> #> setwd("/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/RtmpMWUKEw/file17e3443a8ab/reference") #> #> Please see the documentation ?orderly::orderly_test_start for #> more details # The data in the orderly example is now available to use dat #> name number #> 1 careful_bobolink 0.40683019 #> 2 uncalorific_bonobo 0.91287592 #> 3 marginal_eagle 0.29360337 #> 4 unterrestrial_slothbear 0.45906573 #> 5 illfated_anchovy 0.33239467 #> 6 wet_shrimp 0.65087047 #> 7 classless_drafthorse 0.25801678 #> 8 upstanding_tattler 0.47854525 #> 9 cranky_earwig 0.76631067 #> 10 uninspirable_indianglassfish 0.08424691 #> 11 changeable_bream 0.87532133 #> 12 zealous_emperorshrimp 0.33907294 #> 13 brilliant_nandine 0.83944035 #> 14 waiting_agouti 0.34668349 #> 15 tricolour_xrayfish 0.33377493 #> 16 preagricultural_dromaeosaur 0.47635125 #> 17 rhombohedral_canary 0.89219834 #> 18 necessary_barnowl 0.86433947 #> 19 ethnological_oyster 0.38998954 #> 20 snobbish_capeghostfrog 0.77732070 # Check to see which artefacts have been created so far: orderly::orderly_test_check(p) #> [ artefact ] mygraph.png: <missing> # Manually the code that this report has in its script png(file.path(p, "mygraph.png")) barplot(setNames(dat$number, dat$name), las = 2) dev.off() #> agg_png #> 2 # We now confirm that the artefact has been created: orderly::orderly_test_check(p) #> [ artefact ] mygraph.png: efbcb8e70e3702528724227de5d5be4b