[Rd] unit testing for R packages?

spencerg spencer.graves at prodsyse.com
Tue Oct 6 00:06:05 CEST 2009


Hi, Duncan: 


      Thanks for the warning.  Can you give me a hint of which release 
might require this?  In particular, will it be R 2.10.0, coming quite 
soon? 


      Thanks,
      Spencer


Duncan Murdoch wrote:
> On 05/10/2009 4:39 PM, spencerg wrote:
>> I put unit test in the examples, using "\dontshow" to hide 
>> "stopifnot".  Many help pages I've written contain code like the 
>> following:
>>
>> A <- functionDocumentedHere()
>> B <- manuallyComputedAnswer
>>
>> \dontshow{stopifnot(}
>> all.equal(A, B)
>> \dontshow{)}
>
> This will fail in a future release of R, because those aren't valid 
> expressions within \dontshow{}, which expects R code.  You can achieve 
> the same effect using the clearer
>
> all.equal(A,B)
> \dontshow{ stopifnot(isTrue(.Last.value)) }
>
> Duncan Murdoch
>
>>
>>
>>       I think it helps the documentation to include an example 
>> comparing a special case computed using a function with a manual 
>> computation.  However, "stopifnot" contributes nothing to user 
>> understanding, so I hide it.  One could also use "\dontshow" to hide 
>> entire examples that check trivial details you think would not 
>> interest users.
>>
>>       Spencer
>>
>>
>> Seth Falcon wrote:
>>> Hi,
>>>
>>> On Mon, Oct 5, 2009 at 12:01 PM, Blair Christian
>>> <blair.christian at gmail.com> wrote:
>>>  
>>>> I'm interested in putting some unit tests into an R package I'm
>>>> building.  I have seen assorted things such as Runit library, svUnit
>>>> library, packages
>>>> with 'tests' directories, etc
>>>>
>>>> I grep'd "unit test" through the writing R extensions manual but 
>>>> didn't find
>>>> anything.  Are there any suggestions out there?  Currently I have
>>>> several (a lot?) classes/methods that I keep tinkering with, and I'd
>>>> like to run a script frequently to check that I don't cause any
>>>> unforeseen problems.
>>>>     
>>> I've had good experiences using RUnit.  To date, I've mostly used
>>> RUnit by putting tests in inst/unitTests and creating a Makefile there
>>> to run the tests.  You should also be able to use RUnit in a more
>>> interactive fashion inside an interactive R session in which you are
>>> doing development.
>>>
>>> The vignette in svUnit has an interesting approach for integrating
>>> unit testing into R CMD check via examples in an Rd file within the
>>> package.
>>>
>>> + seth
>>>
>>>   
>>
>>
>
>


-- 
Spencer Graves, PE, PhD
President and Chief Operating Officer
Structure Inspection and Monitoring, Inc.
751 Emerson Ct.
San José, CA 95126
ph:  408-655-4567



More information about the R-devel mailing list