Ist es möglich, den Debugger in RStudio beim Ausführen von testthat
Tests aufzurufen? Ich konnte kein Setup finden, das dies erlaubt (verschiedene Kombinationen von "devtools
Paketfunktionen, falls verfügbar" in den Einstellungen verwenden, die Option "Testpaket" im "Build -> More" Menü drücken, test()
in der Konsole, setzen browser()
Anrufe, etc.) aber haben noch keinen Weg gefunden.Debugging 'testthat' Tests in RStudio
ich auch finde mich viel verloren zu gehen, wenn die Prüfung, nicht sicher, ob der Code sein Lauf in den Systembibliotheken installiert wurde (by doing ‚Build & Reload‘), oder wird ausgeführt in situ aus dem lokalen R
Verzeichnis, oder was - manchmal RStudio beschwert sich, dass ein Haltepunkt nicht gesetzt werden kann, bis das Paket neu aufgebaut wird (so vermute ich erstere) oder nicht (so vermute ich letzteres). Ich bin mir nicht sicher, ob dieses Problem eng mit meiner Hauptfrage zusammenhängt oder nicht.
Ohne einen Weg zu finden, um in den Debugger zu fallen, ich am Ende Einfügen von Test-Code in die Konsole & arbeiten auf eine sehr ad-hoc-Art und im Grunde schießen meine TDD Gewohnheiten in den Fuß. Daher wäre jeder Rat gefragt - wenn es nicht möglich ist, den Debugger aufzurufen, irgendwelche vorgeschlagenen Problemumgehungen?
Ich verwende RStudio Version 0.99.477 auf OS X, im lokalen Modus, mit R 3.2.1.
Bearbeiten - Ich würde auch gerne mehr Hintergrund über die Optionen, z. "Option X wird das Debuggen nie unterstützen, da es in einem gegabelten Prozess ausgeführt wird, versuchen Sie stattdessen diese andere Option Y."
Update - ich hatte keine Antworten hier, ich fragte auch bei https://support.rstudio.com/hc/communities/public/questions/204779797-Debugging-testthat-tests-in-RStudio (wo ich auch keine Antworten hatte).
Mit "Clean and Rebuild" meinen Sie "Build & Reload"? Was ich wirklich hasse, ist, dass ich meine Entwicklungsversion oft versehentlich auf dem Rechner global installiere. 'dev_mode' ist eine Lösung, aber manchmal vergesse ich, das auch einzuschalten, da es ein manueller Prozess ist ... –
Ich zögere, die' browser() 'Methode entweder zu verwenden - vor kurzem jemand in meinem Team (nicht ich, Gott sei Dank !) hat in ihrem Code eine Menge 'browser()' Statements hinterlassen, die in die Produktion gingen, was schlecht war. Es ist ein Nachteil, den Code ändern zu müssen, nur um ihn zu hinterfragen. Obwohl es in diesem Fall nicht ganz so schlimm ist, es in den Testdateien zu tun - aus irgendeinem Grund funktionieren die Breakpoints bei der Verwendung von "devtools :: test()" nicht in den Testdateien, aber sie funktionieren in den Code-Dateien unter 'R /' Verzeichnis. –
Nein, es gibt einen separaten Befehl "Clean and Rebuild", der, soweit ich das beurteilen kann, derselbe wie "Build & reload" ist, aber eine erste Bereinigung durchführt, um in einen besser vorhersagbaren Zustand zu kommen. – alev