[Rcpp-devel] How to manage testing code for Rcpp based project?
On Wed, Aug 22, 2012 at 12:16 AM, Davor Cubranic <cubranic at stat.ubc.ca> wrote:
On 12-08-21 09:54 PM, Darren Cook wrote:
RUnit works, but the setup is not the easiest. If someone has ideas for better solutions, by all means implement those. Unit testing has helped us many times, and I consider it to be a very important part of package development.
How (or in what aspect) RUnit is better than devtools?
What is "devtools"? Is it a package for testing R software? (it sounds more generic)
See http://cran.r-project.org/web/packages/devtools/ and https://github.com/hadley/devtools It aims to make various phases of package development cycle easier, at the expense of requiring following certain conventions about naming and layout of source files and directories. I think what Peng meant as an alternative to Runit is not the devtools itself, but testthat. See http://cran.r-project.org/web/packages/testthat/ and https://github.com/hadley/test_that Philosophically, testthat draws on Ruby test frameworks like rspec and other BDD tools. In practical terms, it means that the tests look like this: context("Basic tests") test_that("logical tests act as expected", { expect_that(TRUE, is_true()) expect_that(FALSE, is_false()) }) test_that("equality holds", { expect_that(5, equals(5)) expect_that(10, is_identical_to(10)) }) I haven't gotten very deep into using it, but in practical terms I find there is almost 1:1 correspondence in testing functions ("checkEquals" -> "expect_that(..., equals(...))", with testthat being a little more readable but requiring me to turn off ESS's smart-underscore. :-)
In the past it was difficult to have tests run through testthat use the inline package because the two packages disagreed on the current working directory. Not sure if that has changed.