Есть, по-видимому, два способа интегрировать testthat
с R CMD check
. Я не могу работать.
Подход №1: (возможно, устаревший)
В соответствии с devtools wiki:
При разработке пакета поместите свои тесты в inst/tests, а затем создать файл test/run-all.R(обратите внимание, что это должен быть капитал R), который содержит следующий код:
library(testthat)
library(mypackage)
test_package("mypackage")
Это проверит ваши тесты в пакете пространство имен (так что вы можете протестировать неэкспортируемые функции), и он будет бросать если есть какие-либо ошибки тестирования. Это означает, что вы увидите полный отчет об ошибках тестирования и проверка R CMD не пройдут, если все тесты проходят.
Весь пакет здесь. В нем находятся два файла:
## minimalbugexample/inst/tests/run-all.R
library(testthat)
library(minimalbugexample)
test_package('minimalbugexample')
и
## minimalbugexample/inst/tests/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
my ОПИСАНИЕ
Package: minimalbugexample
Title:
Description:
Version: 0.1.1
Author: Nathan VanHoudnos <[email protected]>
Maintainer: Nathan VanHoudnos <[email protected]>
Depends:
R (>= 3.0.1),
Matrix (>= 1.0)
Suggests:
testthat
License: GPL
LazyData: true
Collate:
'minimalbugexample-package.r'
'use-Matrix-package.R'
После установки пакета я могу выполнить тесты просто отлично (они не работают, как и ожидалось).
> test_package('minimalbugexample')
Intentional break : 1
1. Failure: -------------------------------------------------------------------
TRUE not equal to FALSE
1 element mismatch
Error: Test failures
>
Но R CMD check
не запускает тесты.
$ R CMD check minimalbugexample_0.1.1.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
Я не думаю, что предупреждение PDF имеет какое-то отношение к этому, но я могу предоставить более подробную информацию, если потребуется.
Подход № 2: (край кровотечения)
В соответствии с README файл репозитория testthat
:
Теперь рекомендуем практиковать, чтобы поставить свои тесты в тестах /testthat и убедитесь, что R CMD проверяет выполнение, а затем поместив следующий код в Тесты/Тест-all.R:
library(testthat)
test_check(yourpackage)
Итак, я убедился, что у меня установлена самая последняя версия testthat:
> install_github("testthat")
И затем изменил пакет. Вы можете получить эту версию здесь. Я изменил два файла:
## minimalbugexample/inst/tests/test-all.R
library(testthat)
test_check(minimalbugexample)
и
## minimalbugexample/inst/tests/testthat/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
Затем, обновив версию пакета до 0.1.2 в файле DESCRIPTION, я смогу ее создать, установить и использовать testthat
, чтобы проверить его и получить тот же результат, что и раньше. Таким образом, кажется, что касается testthat
, его работа.
Однако проверка R CMD все еще не запускает тесты:
$ R CMD check minimalbugexample_0.1.2.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
LaTeX errors when creating PDF version.
This typically indicates Rd problems.
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
Итак, вопрос:
Что я делаю неправильно? Мое предпочтение - решение для подхода 2, но я возьму либо!