Jak skonfigurować test, aby sprawdzić R CMD?
Istnieją dwa sposoby integracjitestthat
zR CMD check
. Nie mogę iść do pracy.
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!