Что @hadley означает, что в двоичных пакетах tests/
нет; это только в пакете с исходным кодом. Соглашение состоит в том, что что-либо в inst/
копируется в каталог верхнего уровня пакета после установки, поэтому inst/tests/
будет доступно как /tests
в структуре каталога двоичного и установленного пакета.
См. Мой пакет permute в качестве примера. Я использовал пакет @adley testthat в качестве учебного опыта и для своих тестов пакета. Пакет находится на CRAN . Возьмите архив с исходным кодом и обратите внимание, что у него есть оба tests/
и inst/tests/
, затем возьмите двоичный файл Windows и обратите внимание, что он содержит только tests/
, который является копией из inst/tests
в источниках.
Строго говоря, только tests/
запускается R CMD check
и т. Д., Поэтому во время разработки и проверки рабочих пакетов вам необходим код в tests/
для проверки того, что пакет выполняет то, что он требует, или других модульных тестов. Конечно, у вас может быть код в tests/
, который запускает R-скрипты в /inst/tests/
, которые фактически выполняют тесты, и , что имеет побочный эффект, так как делает тестовый код доступным для пользователей пакета.
То, как я вижу вещи, вам нужно, по крайней мере, tests/
, то, нужно ли вам inst/tests
, будет зависеть от того, как вы хотите разработать свой пакет и какой код / пакеты модульного тестирования вы используете. inst/tests/
- это то, что @hadley защищает, но это далеко не стандарт для большей части CRAN.