Wie richte ich den Test für die R CMD-Prüfung ein?

Es gibt anscheinend zwei Möglichkeiten, sich zu integrierentestthat mitR CMD check. Ich kann auch nicht zur Arbeit kommen.

Ansatz 1: (möglicherweise veraltet)

LautDevtools Wiki:

Fügen Sie bei der Entwicklung eines Pakets Ihre Tests in inst / tests ein und erstellen Sie dann eine Datei tests / run-all.R (beachten Sie, dass es sich um ein Großbuchstaben R handeln muss), die den folgenden Code enthält:

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

Dadurch werden Ihre Tests im Paketnamensbereich ausgewertet (damit Sie nicht exportierte Funktionen testen können), und es wird ein Fehler ausgegeben, wenn Testfehler auftreten. Dies bedeutet, dass der vollständige Bericht über Testfehler angezeigt wird und die R CMD-Prüfung erst dann erfolgreich abgeschlossen wird, wenn alle Tests erfolgreich abgeschlossen wurden.

Das ganze Paket istHier. Darin sind die beiden Dateien:

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

und

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

meine BESCHREIBUNG ist

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'

Nach der Installation des Pakets kann ich die Tests problemlos ausführen (sie schlagen erwartungsgemäß fehl).

> test_package('minimalbugexample')
Intentional break : 1


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

Aber einR CMD check führt die Tests nicht aus.

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

Ich denke nicht, dass die PDF-Warnung etwas damit zu tun hat, aber ich kann auf Anfrage weitere Details bereitstellen.

Ansatz 2: (blutende Kante)

LautREADME-Datei dertestthat Repository:

Nun empfehlen wir Ihnen, Ihre Tests in tests / testthat abzulegen und sicherzustellen, dass die R CMD-Prüfung ausgeführt wird, indem Sie in tests / test-all.R den folgenden Code eingeben:

library(testthat)
test_check(yourpackage)

Also habe ich mich vergewissert, dass ich die neueste Testversion installiert habe:

> install_github("testthat")

Und dann das Paket geändert. Sie können diese Version erhaltenHier. Ich habe die beiden Dateien geändert, um zu sein

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

und

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

Dann aktualisiere ich die Paketversion auf 0.1.2 in der DESCRIPTION-Datei, kann sie erstellen, installieren und verwendentestthat um es zu überprüfen und die gleiche Ausgabe wie zuvor zu erhalten. So scheint es, dass soweittestthat ist besorgt, seine Arbeit.

Bei der R CMD-Prüfung werden die Tests jedoch immer noch nicht ausgeführt:

$ 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.
Also die Frage:

Was mache ich falsch? Ich bevorzuge eine Lösung für Ansatz 2, nehme aber auch eine!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage