R разработка пакета биокондуктора с TDD (RUnit)

Я пытаюсь следовать рекомендациям BioConductor RUnit. Я следовал минимальной настройке, поэтому у меня есть:

Suggests: RUnit, BiocGenerics в описании

BiocGenerics:::testPackage("MyPackage") в MyPackage/tests/runTests.R

и некоторые файлы test_XXX.R в MyPackage/inst/unitTests/

Если я запускаю один тестовый файл с:

library(RUnit)
source("LIBRARY FILES")
source("MyPackage/inst/unitTests/test_getKeywordValue.R")
test_getKeywordValue()

Тестовый запуск (и происходит сбой при необходимости), но если я запускаю

R CMD check MyPackage

Команда говорит:

* checking tests ...
  Running ‘runTests.R’
 OK

Но не запускайте мои тесты в MyPackage/inst/unitTests Каталог...

Чего мне не хватает?

Platform: x86_64-apple-darwin9.8.0  
R version 2.15.2 (2012-10-26)

2 ответа

Решение

Задача решена.

Вот история:

В свой пакет я поместил файл.Rinstignore с этой строкой:

test/* 

Я ожидал совпадения в стиле глобуса (как.gitignore), но вместо этого, как RShowDoc("R-exts") сказать:

.Rinstignore выполняет сопоставление регулярных выражений в стиле perl.

Итак, мое правило test/* был интерпретирован R как:

Ignore all files starting with test followed by 0 or more '/' 

(часть /* была интерпретирована как совпадение ноль или более / символов)

Быстрая проверка с grep показать, как это работает:

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

Удаление линии

test/* 

от.Rinstignore решил проблему.

Я не знаю руководящих принципов BioC по этому вопросу, но у меня есть несколько пакетов CRAN, в которых используется схема, впервые разработанная Мартином Маечлером для некоторых пакетов Rmetrics.

Это описано в этом посте R Wiki, и вы можете посмотреть мои варианты этого, скажем, в RcppArmadillo или RcppGSL или некоторых других пакетах. Ключ часто файл tests/doRUnit.R который выполняет необходимые повороты для запуска из источников или из установленного пакета.

Другие вопросы по тегам