[Bioc-devel] R: developing a bioconductor package with TDD (RUnit)

Martin Morgan mtmorgan at fhcrc.org
Mon Jan 21 15:18:28 CET 2013


On 01/21/2013 04:01 AM, Davide Rambaldi wrote:
>
> Hi all, here is  my followup:
>
> The output of flowFit.Rcheck/tests/runTests.Rout is:
>
> RUNIT TEST PROTOCOL -- Mon Jan 21 11:22:51 2013
> ***********************************************
> Number of test functions: 0
> Number of errors: 0
> Number of failures: 0
>
> 1 Test Suite :
> flowFit RUnit Tests - 0 test functions, 0 errors, 0 failures
> Number of test functions: 0
> Number of errors: 0
> Number of failures: 0
>
> No test run …. :-(
>
> RESTARTING FROM SCRATCH with a package skeleton:
> require(stats)
> ## two functions and two "data sets" :
> f <- function(x, y) x+y
> g <- function(x, y) x-y
> d <- data.frame(a = 1, b = 2)
> e <- rnorm(1000)
> package.skeleton(list = c("f","g","d","e"), name = "RUnitTest")
> And inside the package dir:
>
> mkdir tests
>
> mkdir -p inst/unitTests
>
> touch inst/unitTests/test_iWantToFail.R
>
> more inst/unitTests/test_iWantToFail.R
>
> test_f <- function()
> {
>    checkTrue(FALSE)
> }
>
>
> OUTPUT is OK:
>
> RUnitTest RUnit Tests - 1 test function, 0 errors, 1 failure
>    FAILURE in test_f: Error in checkTrue(FALSE) : Test not TRUE
>
>
> So where is the problem in my library?
>
> After a session of "find the differences" game I finally got the problem:
>
> Problem is in the .Rinstignore file.
>
> here is my .Rinstignore in the ROOT directory of the package:
>
> inst/doc/.*[.]bib$
> inst/doc/Makefile
> test/*
> TODO
> README
> .DS_Store
> .git/*
> .project
> .Rapp.history
> .Rhistory
>
>
> The problematic line is:
>
> test/*
>
> If I remove the line, the test runs and fail when need to fail with R CMD check:
>
> R CMD check flowFit
>
> […]
>
> Last 13 lines of output:
>    flowFit RUnit Tests - 1 test function, 0 errors, 1 failure
>    FAILURE in test_failing: Error in checkTrue(FALSE) : Test not TRUE
>
>
>    Test files with failing tests
>
>       test_iWantToFail.R
>         test_failing
>
>
>    Error in BiocGenerics:::testPackage("flowFit") :
>      unit tests failed for package flowFit
>    Execution halted
>
>
> Strange thing: i put test/* in .Rinstignore, but R is ignoring the directory inst/unitTests/* is this the expected behavior?
>
> Anyway, I can test now and I am happy :-)

Glad you sorted that out. RShowDoc("R-exts") says that .Rinstignore does 
perl-style regular expression matching. The '/*' part of your pattern says 
'match zero or more / characters' whereas you were probably expecting glob-style 
matching, '/' followed by anything. The Writing R Extensions manual says, in a 
footnote, that the pattern matching is case-insensitive on Windows (probably 
this isn't a good design decision, but beside the point), which would NOT 
exclude unitTests on your MacOS but would exclude the individual test_.*R files

 > grep("test/*", c("inst/unitTests/bar", "inst/unitTests/test_bar.R"),
        perl=TRUE)
[1] 2

So yes, it would seem like you were getting what you asked for!

Martin

>
> As soon as I get some feedback about this error,  I will post an answer to my own question in stackoverflow:
>
> http://stackoverflow.com/questions/14403181/r-developing-a-bioconductor-package-with-tdd-runit
>
>
> Thanks for help.
>
> If you need more info about my setup, here is the sessionInfo()
>
> R version 2.15.2 (2012-10-26)
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] flowFit_0.3.1
>
> loaded via a namespace (and not attached):
>   [1] Biobase_2.18.0     BiocGenerics_0.4.0 feature_1.2.8      flowCore_1.24.0
>   [5] gdata_2.12.0       gplots_2.11.0      graph_1.36.1       gtools_2.7.0
>   [9] ks_1.8.11          kza_2.01           MASS_7.3-23        minpack.lm_1.1-6
> [13] rrcov_1.3-02       stats4_2.15.2      tools_2.15.2
>
>
> Regards
>
> Davide Rambaldi
>
>
>
>
>
>
>
> On Jan 18, 2013, at 6:43 PM, Martin Morgan wrote:
>
>> On 01/18/2013 08:26 AM, Davide Rambaldi wrote:
>>> Hello, I am trying to follow the bioconductor RUnit guidelines (http://www.bioconductor.org/developers/unitTesting-guidelines/#duringDevelopment)
>>>
>>> I have followed the the minimal setup so I have:
>>>
>>> Suggests: RUnit, BiocGenerics in DESCRIPTION
>>>
>>> BiocGenerics:::testPackage("MyPackage") in MyPackage/tests/runTests.R
>>>
>>> and some test_XXX.R files in MyPackage/inst/unitTests/
>>>
>>> If I run a single test files with:
>>>
>>> library(RUnit)
>>> source("LIBRARY FILES")
>>> source("MyPackage/inst/unitTests/test_getKeywordValue.R")
>>> test_getKeywordValue()
>>
>> To me this looks ok. Are you using R-devel and current packages (output of sessionInfo())? After installing your package, does
>>
>> R --vanilla -e " BiocGenerics:::testPackage('MyPackage')"
>>
>> do the right thing? After running R CMD check, are there any hints in the file
>>
>>   MyPackage.Rcheck/tests/runTests.Rout
>>
>> ?
>>
>>>
>>> The test run (and fails when need to fail), but if I run
>>>
>>> R CMD check MyPackage
>>>
>>> The command say:
>>>
>>> * checking tests ...
>>>    Running ‘runTests.R’
>>>   OK
>>>
>>> But don't run my tests in MyPackage/inst/unitTests directory...
>>>
>>> What I missing?
>>>
>>> Platform: x86_64-apple-darwin9.8.0
>>> R version 2.15.2 (2012-10-26)
>>>
>>> Best Regards and thanks in Advance
>>>
>>>
>>> -----------------------------------------------------------
>>> PLEASE NOTE MY NEW EMAIL ADDRESS
>>> -----------------------------------------------------------
>>>
>>> -----------------------------------------------------
>>> Davide Rambaldi, PhD.
>>> -----------------------------------------------------
>>> IEO ~ MolMed
>>> [e] davide.rambaldi at ieo.eu
>>> [e] davide.rambaldi at gmail.com
>>>
>>> _______________________________________________
>>> Bioc-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>
>>
>>
>> --
>> Computational Biology / Fred Hutchinson Cancer Research Center
>> 1100 Fairview Ave. N.
>> PO Box 19024 Seattle, WA 98109
>>
>> Location: Arnold Building M1 B861
>> Phone: (206) 667-2793
>
>
> 	[[alternative HTML version deleted]]
>
>
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>


-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793



More information about the Bioc-devel mailing list