Jak skonfigurować test, aby sprawdzić R CMD?

Istnieją dwa sposoby integracjitestthat zR CMD check. Nie mogę iść do pracy.

Podejście nr 1: (być może przestarzałe)

Wedługwiki devtools:

Podczas tworzenia pakietu umieść testy w inst / testing, a następnie utwórz plik testy / run-all.R (zwróć uwagę, że musi to być duży R), który zawiera następujący kod:

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

To sprawdzi twoje testy w przestrzeni nazw pakietów (abyś mógł przetestować nieeksportowane funkcje), a jeśli wystąpią błędy testowe, wyświetli błąd. Oznacza to, że zobaczysz pełny raport o niepowodzeniach testów i sprawdzeniu R CMD, chyba że wszystkie testy zostaną zaliczone.

Cały pakiet jesttutaj. W tym są dwa pliki:

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

i

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

mój OPIS jest

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'

Po zainstalowaniu pakietu mogę uruchomić testy w porządku (nie działają zgodnie z oczekiwaniami).

> test_package('minimalbugexample')
Intentional break : 1


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

AleR CMD check nie uruchamia testów.

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

Nie sądzę, aby ostrzeżenie PDF miało z tym coś wspólnego, ale mogę podać więcej szczegółów, jeśli zażądam.

Podejście # 2: (krwawienie)

WedługPlik README plikutestthat magazyn:

Zaleca się teraz, aby umieścić testy w testach / testach i upewnić się, że R CMD działa, a następnie umieścić następujący kod w testach / test-all.R:

library(testthat)
test_check(yourpackage)

Dlatego upewniłem się, że zainstalowałem najnowszą wersję testu:

> install_github("testthat")

A potem zmienił pakiet. Możesz pobrać tę wersjętutaj. Zmodyfikowałem te dwa pliki

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

i

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

Następnie zaktualizowałem wersję pakietu do wersji 0.1.2 w pliku DESCRIPTION, mogę go zbudować, zainstalować i użyćtestthat aby to sprawdzić i uzyskać takie samo wyjście jak poprzednio. Więc wydaje się, że tak dalekotestthat dotyczy, jego działanie.

Jednak kontrola R CMD nadal nie uruchamia testów:

$ 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.
Więc pytanie:

Co ja robię źle? Preferuję rozwiązanie dla Approach 2, ale wezmę je!

questionAnswers(1)

yourAnswerToTheQuestion