Czy możliwe jest wywołanie debuggera w RStudio podczas testów testthat
? Nie udało mi się znaleźć konfiguracji, która by to umożliwiła (różne kombinacje "użyj funkcji pakietu devtools
, jeśli jest dostępna" w ustawieniach, trafiając w opcję "Pakiet testowy" w menu "Kompilacja -> Więcej", uruchamiając test()
w konsola, nawiązywanie połączeń browser()
itp.), ale jeszcze nie znalazłem sposobu.Debugowanie testów "testthat" w RStudio
ja również znaleźć się gubię dużo podczas testowania, niepewny, czy kod jest prowadzony został zainstalowany w bibliotekach systemowych (wykonując „Build & Reload”), lub jest prowadzony in situ z lokalnego R
katalog, lub co - czasami RStudio narzeka, że punktu przerwania nie można ustawić, dopóki pakiet nie zostanie przebudowany (więc podejrzewam, że pierwszy) lub nie (tak podejrzewam, że drugi). Nie jestem pewien, czy ten problem jest ściśle związany z moim głównym pytaniem.
Bez znajdowania sposobu na wklejenie się do debuggera, kończę wklejając kod testowy do konsoli & pracując w bardzo doraźny sposób i zasadniczo strzelając do moich nawyków TDD w stopach. Więc każda rada byłaby doceniona - jeśli nie można wywołać debuggera, jakiekolwiek sugerowane obejścia?
Używam wersji RStudio 0.99.447 na OS X, w trybie lokalnym, z R 3.2.1.
Edytuj - Chciałbym również poznać więcej informacji o opcjach, np. "opcja X nigdy nie będzie wspierała debugowania, ponieważ działa w rozwidlonym procesie, spróbuj zamiast tego użyć innej opcji Y".
Aktualizacja - nie mając odpowiedzi tutaj, zapytałem również o numer https://support.rstudio.com/hc/communities/public/questions/204779797-Debugging-testthat-tests-in-RStudio (gdzie również nie miałem żadnych odpowiedzi).
Przez "Czystość i przebudowę" rozumiesz "Build & Reload"? Rzeczą, której naprawdę nie lubię, jest to, że często przez przypadek instaluję moją wersję programistyczną na całym świecie. 'dev_mode' jest jednym z rozwiązań, ale czasami zapominam o włączeniu tego, ponieważ jest to proces ręczny ... –
Jestem niezdecydowany, aby skorzystać z metody' browser() '- ostatnio ktoś w moim zespole (nie ja, na szczęście !) pozostawił w swoim kodzie kilka instrukcji 'browser()', które przeszły na produkcję, która była zła. To bummer, który musi zmienić kod tylko po to, żeby go dokładnie obejrzeć. Chociaż nie jest tak źle w tym przypadku, aby zrobić to w plikach testowych - z jakiegoś powodu przy korzystaniu z 'devtools :: test()' punkty przerwania nie działają w plikach testowych, ale działają w plikach kodu pod Katalog 'R /'. –
Nie, istnieje osobne polecenie "Wyczyść i przebuduj", które, o ile mogę powiedzieć, jest takie samo jak "Utwórz i przeładuj", ale wykonuje wstępne czyszczenie, aby uzyskać bardziej przewidywalny stan. – alev