Testthat: Systemquotierung schlägt mit testthat + CMD-Prüfung fehl

Erstellt am 3. Mai 2014  ·  7Kommentare  ·  Quelle: r-lib/testthat

Unten ist ein Minimalbeispiel:

Geben Sie Folgendes in tests/testthat.R ein:

options(warn = 2)
library(testthat)
test_check("anRpackage", report = "summary")

In Tests/testthat/test.R

extcmd <- 'R -e \'print("hello")\''
system(extcmd, intern = TRUE)

Führen Sie dann R CMD check (entweder mit 3.1 oder mit der aktuellen Entwicklerversion), ich erhalte die folgende Fehlermeldung:

* checking tests ...
  Running ‘testthat.R’
 ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
  > library(testthat)
  > 
  > test_check("anRpackage", report = "summary")
  Loading required package: anRpackage
  Error in file(filename, "r", encoding = encoding) : 
    cannot open the connection
  Calls: local ... eval.parent -> eval -> eval -> eval -> eval -> source -> file
  In addition: Warning message:
  In file(filename, "r", encoding = encoding) :
    cannot open file 'startup.Rs': No such file or directory
  Execution halted
  Error: (converted from warning) running command 'R -e 'print("hello")'' had status 1
  Execution halted

Wenn ich test.R ausführe oder R CMD BATCH test.R ausführe oder test.R direkt in den Ordner tests lege und dann R CMD check ausführe, läuft es einwandfrei.

Der Fehler ähnelt #129 und #86.

Ich verwende Ubuntu 64-Bit, sowohl 13.10 als auch 14.04.

Hilfreichster Kommentar

Wurde dies R-core gemeldet? Wenn ja, wo? Vielen Dank.

Alle 7 Kommentare

Es ist R. Ich bekomme das gleiche Problem, wenn ich nur system("R CMD build ...") über eine Datei in tests/ versuche - kein Test, der beteiligt ist (und ich bin über Google hierher gekommen ...)

Ubuntu 14.04, R 3.1.0.

Gut zu wissen, Dirk. Schließen wir dieses Thema dann.

Noooo - ich möchte es auch behoben haben :-/ Wir müssen einen Fix finden, der orthogonal dazu ist, ob es von Devtools oder Testthat oder youknowhat gekitzelt wird.

Ich stimme zu, aber nach Ihren neuen Informationen klingt dies nach einem R-Problem, nicht nach einem Test dieses Problems, oder? Es macht mir sicherlich nichts aus, diesen Fehler offen zu halten, aber ich möchte das Testen nicht mit einem Fehler überladen, der vom Autor nicht wirklich umsetzbar ist, es sei denn, wir ziehen eine Lösung in Betracht, nehme ich an.

Findest du es nicht besser, dies dem R-Kern zu melden und dort damit umzugehen?

Dies ist ein R-Problem. In Devtools haben wir (im Zusammenhang mit dem Setzen von Umgebungsvariablen):

    # When R CMD check runs tests, it sets R_TESTS. When the tests
    # themeselves run R CMD xxxx, as is the case with the tests in
    # devtools, having R_TESTS set causes errors because it confuses
    # the R subprocesses. Unsetting it here avoids those problems.
    "R_TESTS" = "",

Ich bin gerade hierher gekommen, um das Hinzufügen zu bestätigen

Sys.setenv("R_TESTS" = "")

to the testfile scheint sich um diese Probleme zu kümmern.

Wurde dies R-core gemeldet? Wenn ja, wo? Vielen Dank.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen