cdeterman
cdeterman

Reputation: 19970

roxygen2 how to not run example file

I am well aware of how to have roxygen not run an example when the code is directly in the roxygen comments. However, some example may be somewhat verbose or you would want you examples compiled in an examples directory. In which case the @example file_path works fine but I can't figure out how to have roxygen not run (i.e. \dontrun) the example file.

This is admitted very similar to this question but the comments show that this problem was not answered.

test.R

# this does not work
#' @title test_fun
#' @example \dontrun{examples/test_example.R}
test <- function(){
    print("hello")
}

# this does
#' @title test
#' @examples 
#' \dontrun{
#' test()
#' }
test <- function(){
    print("hello")
}

test_example.R

test()

How can I get the former approach to work?

Upvotes: 6

Views: 1553

Answers (2)

Konrad Rudolph
Konrad Rudolph

Reputation: 545995

You need to put the \dontrun{} directive inside the example R file itself. Note that the directive must not be commented out!

The following works:

\dontrun{
test()
}

But the following does not work, contrary to what the other answer says:

#' \dontrun{
test()
#' }

Unfortunately this means that the example file isn’t actually valid R code (you’ll get a syntax error “unexpected symbol” when trying to source or parse the code).

Upvotes: 0

amc
amc

Reputation: 307

It seems I'm able to accomplish this by using roxygen2-style comments for the \dontrun{} block in the example file. This gets around the limitation in Michal's answer.

Create an example file that looks like this:

#' \dontrun{
test()
#' }

More reliably, you can wrap your example in an if(interactive()) {} block, which won't be run during checks but allows you to manually run through the example.

Upvotes: 4

Related Questions