Ein R-Paket kommuniziert mit einer kommerziellen Datenbank unter Verwendung eines privaten Benutzername und Passwort, um eine Verbindung herzustellen. In der package_vignette.Rmd-Datei gibt es ein Stück Code:
%Vor%Ich habe nicht das Recht, CRAN den Benutzernamen und das Passwort zu geben. daher kann ich keine echte 'connection.config' Datei mit dem Paket liefern. Dieses Codefragment führt natürlich bei CRAN-Prüfungen zu einem Fehler.
Ich kenne zwei Möglichkeiten, den CRAN-Check zu umgehen:
Verwenden Sie die knitr-Option: eval = FALSE
.
Machen Sie statische Vignette mit Hilfe der R.rsp Paket.
Der erste Weg ist zu zeitaufwendig, weil es viele Brocken gibt,
und ich schreibe die Vignette oft um.
Der zweite Weg ist besser für mich. Aber gibt es ein besseres Muster, wie man solche Vignette unterstützt? Zum Beispiel verwende ich in den Tests des Pakets testthat::skip_on_cran()
, um CRAN-Prüfungen zu vermeiden.
Am einfachsten ist es, die Daten in Ihr Paket aufzunehmen. Entweder der Dummy-Datensatz in:
data
. Dies würde es Benutzern ermöglichen, einfach darauf zuzugreifen. inst/extdata
. Benutzer können auf diese Datei zugreifen, aber sie ist etwas versteckter. Du würdest den Ort mit system.file(package="my_pkg")
finden
In der Vignette hättest du etwas
%Vor% testthat::skip_on_cran
prüft nur eine Systemvariable
%Vor%
Soweit ich weiß, wird dies durch testthat
oder devtools
festgelegt. So könnten Sie
in der Chunk-Option und laden testthat
oder devtools
in einem der ersten Chunks. Andernfalls können Sie einen ähnlichen Mechanismus auf Ihrer Site verwenden und eine ähnliche Systemvariable zuweisen und prüfen, ob sie "true"
ist. ZB verwenden Sie Sys.setenv("IS_MY_COMP", "true")
). Setzen Sie dann einen Sys.setenv
-Aufruf in Ihre .Rprofile
-Datei, wenn Sie R studio oder in Ihrer R_HOME/Rprofile.site
-Datei verwenden. Informationen zur späteren Option finden Sie in help("Startup")
.
Alternativ können Sie prüfen, ob "/home/user001/connection.config"
mit
in der Chunk-Option.