Como configurar o teste para verificação de R CMD?

Existem aparentemente duas maneiras de integrartestthat comR CMD check. Eu não posso começar a trabalhar.

Abordagem 1: (talvez preterido)

De acordo comwiki de devtools:

Ao desenvolver um pacote, coloque seus testes em inst / tests e, em seguida, crie um arquivo tests / run-all.R (note que ele deve ser um R maiúsculo), que contém o seguinte código:

library(testthat) 
library(mypackage)
test_package("mypackage") 

Isso avaliará seus testes no namespace do pacote (para que você possa testar funções não exportadas) e emitirá um erro se houver falhas no teste. Isso significa que você verá o relatório completo de falhas de teste e a verificação de R CMD não será aprovada, a menos que todos os testes sejam aprovados.

Todo o pacote éAqui. Nela estão os dois arquivos:

## minimalbugexample/inst/tests/run-all.R
library(testthat)
library(minimalbugexample)
test_package('minimalbugexample')

e

## minimalbugexample/inst/tests/test-use-Matrix-package.R
context("Intentional break")
  expect_that( TRUE, equals(FALSE))

minha DESCRIÇÃO é

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'

Depois de instalar o pacote, posso executar os testes muito bem (eles falham, como esperado).

> test_package('minimalbugexample')
Intentional break : 1


1. Failure:  -------------------------------------------------------------------
TRUE not equal to FALSE
1 element mismatch
Error: Test failures
> 

Mas umR CMD check não executa os testes.

$ 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.

Não acho que o aviso em PDF tenha algo a ver com isso, mas posso fornecer mais detalhes, se solicitado.

Abordagem nº 2: (borda sangrenta)

De acordo comArquivo README dotestthat repositório:

Agora, recomendo praticar é colocar seus testes em testes / testes, e garantir que a verificação do R CMD seja executada, colocando o seguinte código em tests / test-all.R:

library(testthat)
test_check(yourpackage)

Por isso, verifiquei se tinha a versão mais recente do teste instalada:

> install_github("testthat")

E então mudou o pacote. Você pode obter essa versãoAqui. Eu modifiquei os dois arquivos para serem

## minimalbugexample/inst/tests/test-all.R
library(testthat)
test_check(minimalbugexample)

e

## minimalbugexample/inst/tests/testthat/test-use-Matrix-package.R
context("Intentional break")
  expect_that( TRUE, equals(FALSE))

Então atualizando a versão do pacote para 0.1.2 no arquivo DESCRIPTION, eu posso construir, instalar e usartestthat para verificar e obter a mesma saída de antes. Então parece que, tanto quantotestthat está preocupado, está funcionando.

No entanto, a verificação do R CMD ainda não executa os testes:

$ 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.
Então a questão:

O que estou fazendo de errado? Minha preferência é por uma solução para a Abordagem 2, mas vou pegar também!

questionAnswers(1)

yourAnswerToTheQuestion