Frage

so entschied ich mich wurde ich meine paar R Funktionen in ein Paket geschnürt und ich lese / Lernen Schreiben R Extension .

es beschwert sich offensichtlich um eine Menge Dinge, die ich nicht richtig zu machen.

nach genug googeln, ich bin ein paar Fragen hier abfeuern, dieser ist über Test Stil: Ich bin mit

War es hilfreich?

Lösung

Wo setzen Sie Ihre Unit-Tests? Sie können sie nicht in das Verzeichnis R setzen wollen. Ein Standardansatz besteht darin, sie unter inst\unitTests zu setzen. Hier finden Sie aktuelle dieser R-Wiki-Seite in Bezug auf die Konfiguration.

Alternativ können Sie festlegen, welche Dateien in Ihrem Namensraum exportiert werden, und durch die Erweiterung, welche Funktionen sollte und soll nicht dokumentiert werden.

Darüber hinaus, im Idealfall sollten Sie Ihre Tests haben laufen, wenn R CMD Check genannt wird; das ist Teil des Designs. In diesem Fall sollten Sie ein Testskript erstellen Sie Ihre Tests in einem separaten tests Verzeichnis aufzurufen. Und Sie werden das runit Paket in diesem Skript laden müssen (aber man braucht es nicht eine Abhängigkeit des Pakets zu machen).

Bearbeiten 1:

In Bezug auf Ihre Versagen, weil es nicht die checkEquals Funktion finden können: Ich würde Sie so sein ändern Funktion:

test.fillInTheBlanks <- function() {
  require(RUnit)
  checkEquals(fillInTheBlanks(c(1, NA, NA, 2, 3, NA, 4)), c(1, 1, 1, 2, 3, 3, 4))
  checkEquals(fillInTheBlanks(c(1, 2, 3, 4)), c(1, 2, 3, 4))
  checkEquals(fillInTheBlanks(c(NA, NA, 2, 3, NA, 4)), c(2, 2, 2, 3, 3, 4))
}

Auf diese Weise das Paket geladen wird, wenn die Funktion aufgerufen wird, oder es wird den Benutzer darüber informieren, dass das Paket erforderlich ist.

Edit 2:

"Writing R Extensions" :

  

Beachten Sie, dass alle Benutzer-Level-Objekte in einem Paket dokumentiert werden sollen; wenn ein Paket pkg Benutzerebene Objekte enthält, die nur für „interne“ verwendet werden, sollte es eine Datei pkg-internal.Rd bereitzustellen, die alle diese Objekte dokumentiert, und stellt klar, dass diese nicht durch den Benutzer aufgerufen werden soll. Siehe z.B. Die Quellen für Paketnetz in der R Verteilung für ein Beispiel. Beachten Sie, dass Pakete, die weitgehend interne Objekte verwenden, sollten diese Objekte in einem Namensraum verbergen, wenn sie nicht dokumentiert werden müssen (siehe Paketname Leerzeichen).

Sie können die PKG-internal.Rd Datei als eine Option, aber wenn Sie auf mit vielen versteckten Objekten beabsichtigen, ist dies in der Regel in den Erklärungen im Namensraum behandelt.

Andere Tipps

Haben Sie das RUnit Paket laden?

Ihre beste Wette ist wahrscheinlich in einem Paket suchen vorhandenen Code enthält RUnit verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top