¿Cómo configurar testthat para R CMD check?
Aparentemente hay dos maneras de integrartestthat
conR CMD check
. Tampoco puedo ponerme a trabajar.
De acuerdo con ladevtools wiki:
Al desarrollar un paquete, ponga sus pruebas en inst / tests y luego cree un archivo tests / run-all.R (tenga en cuenta que debe ser una R mayúscula), que contiene el siguiente código:
library(testthat)
library(mypackage)
test_package("mypackage")
Esto evaluará sus pruebas en el espacio de nombres del paquete (para que pueda probar las funciones no exportadas) y generará un error si se producen fallos en las pruebas. Esto significa que verá el informe completo de las fallas de prueba y la verificación de R CMD no pasará a menos que todas las pruebas pasen.
Todo el paquete esaquí. En ella se encuentran los dos archivos:
## minimalbugexample/inst/tests/run-all.R
library(testthat)
library(minimalbugexample)
test_package('minimalbugexample')
y
## minimalbugexample/inst/tests/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
mi DESCRIPCION es
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'
Después de instalar el paquete, puedo ejecutar las pruebas muy bien (fallan, como se esperaba).
> test_package('minimalbugexample')
Intentional break : 1
1. Failure: -------------------------------------------------------------------
TRUE not equal to FALSE
1 element mismatch
Error: Test failures
>
Pero unR CMD check
No ejecuta las pruebas.
$ 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.
No creo que la advertencia de PDF tenga nada que ver con esto, pero puedo proporcionar más detalles si lo solicito.
Enfoque # 2: (borde sangrante)De acuerdo con laArchivo README de latestthat
repositorio:
Ahora, la práctica recomendada es poner las pruebas en pruebas / prueba y asegurarse de que R CMD se ejecute luego poniendo el siguiente código en pruebas / prueba-todo.
library(testthat)
test_check(yourpackage)
Así que me aseguré de tener instalada la versión más reciente de testthat:
> install_github("testthat")
Y luego cambió el paquete. Puedes conseguir esta versiónaquí. He modificado los dos archivos para que sean
## minimalbugexample/inst/tests/test-all.R
library(testthat)
test_check(minimalbugexample)
y
## minimalbugexample/inst/tests/testthat/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
Luego, actualizando la versión del paquete a 0.1.2 en el archivo de DESCRIPCIÓN, puedo compilarlo, instalarlo y usarlo.testthat
para comprobarlo y obtener la misma salida que antes. Así que parece que hastatestthat
Se refiere, su funcionamiento.
Sin embargo, R CMD check aún no ejecuta las pruebas:
$ 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.
Así que la pregunta:¿Qué estoy haciendo mal? Mi preferencia es por una solución para el Enfoque 2, ¡pero me quedo con cualquiera!