[Bioc-devel] testthat instructions for website
----- Original Message -----
From: "Michael Love" <michaelisaiahlove at gmail.com> To: "Dan Tenenbaum" <dtenenba at fredhutch.org> Cc: bioc-devel at r-project.org Sent: Friday, March 13, 2015 6:24:56 PM Subject: Re: [Bioc-devel] testthat instructions for website On Mar 13, 2015 9:13 PM, "Dan Tenenbaum" < dtenenba at fredhutch.org > wrote:
----- Original Message -----
From: "Michael Love" < michaelisaiahlove at gmail.com > To: bioc-devel at r-project.org Sent: Friday, March 13, 2015 6:06:39 PM Subject: [Bioc-devel] testthat instructions for website hi Bioc team, Can we add some testthat instructions to the unit testing page: http://bioconductor.org/developers/how-to/unitTesting-guidelines/ I presume the instructions would be simply to follow the basic testthat instructions, e.g.: https://github.com/hadley/testthat/blob/master/README.md http://r-pkgs.had.co.nz/tests.html ...add testthat to Suggests, put tests in files starting with 'test' inside tests/testthat/ and write a file tests/testthat.R with specific code in it. I think this is what the packages here are all doing: http://bioconductor.org/help/search/index.html?q=testthat
One thing to be aware of is that if a package uses RUnit and has a unit test fail, the detailed output of the failed test will be in the build report. If a package uses testthat and has a test fail, the detailed output will NOT be in the report. So the build system needs to be tweaked to support this. Until that happens, I hesitate to recommend that people use testthat because they won't get to see the detailed output that they can see uf they use RUnit.
Thanks Dan. I knew there must be something :) Can you explain more? Isn't it just the 00check.log which gives details in both cases?
Well, 00check.log contains the same info that is currently shown in the build report. If an RUnit test fails, we also include the output of tests/runTests.Rout.fail (which testthat does not produce). A not very good example is http://bioconductor.org/checkResults/devel/bioc-LATEST/easyRNASeq/zin2-checksrc.html (not very good because in this case the .fail file does not really have more info. but often it does). Maybe we can talk offline about how to add this support. If you could give me a toy package with a failing testthat test it would be helpful in figuring out where the more detailed info is written (if it is). Dan
Best, Mike
Dan
best,
Mike
~~~~ end of request, details continue below ~~~~
My reasons for wanting that Bioconductor support testthat in
addition
to RUnit is that RUnit does not make it very simple to run all
tests,
which should be a very simple thing to do.
With testthat, this is simply a call to test() which lives in
devtools. With RUnit you have to do:
runTestSuite(defineTestSuite("myTest",
"inst/unitTests/","test_"))
Although that's not quite enough. That will not run the same test
as
Bioconductor, or as if you ran the code in the test files in your
console, because defineTestSuite picks rngKind =
"Marsaglia-Multicarry" and rngNormalKind = "Kinderman-Ramage",
which
are not the current R default random number generators.
So then you have to do:
runTestSuite(defineTestSuite("myTest", "inst/unitTests/","test_",
rngKind = "default", rngNormalKind = "default"))
Or you could call BiocGenerics:::testPackage(), but we probably
all
agree it's better that unit testing have a documented, exported
function.
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel