Có thể gọi trình gỡ lỗi trong RStudio khi chạy thử nghiệm testthat
không? Tôi đã không thể tìm thấy một thiết lập cho phép điều này (các kết hợp khác nhau của "sử dụng devtools
chức năng gói nếu có" trong cài đặt, nhấn tùy chọn "Gói thử nghiệm" trong menu "Xây dựng -> Khác", chạy test()
trong giao diện điều khiển, đặt trong số browser()
cuộc gọi, v.v.) nhưng chưa tìm được cách nào.Gỡ lỗi các thử nghiệm 'testthat' trong RStudio
Tôi cũng thấy mình bị mất rất nhiều khi thử nghiệm, chắc liệu mã được chạy đã được cài đặt trong các thư viện hệ thống (bằng cách làm 'Xây dựng & Nạp lại'), hoặc đang được chạy tại chỗ từ địa phương R
thư mục, hoặc những gì - đôi khi RStudio phàn nàn rằng một breakpoint không thể được thiết lập cho đến khi gói được xây dựng lại (vì vậy tôi nghi ngờ trước đây) hoặc không (vì vậy tôi nghi ngờ sau này). Bạn không chắc liệu sự cố này có liên quan chặt chẽ hay không với câu hỏi chính của tôi.
Nếu không tìm cách thả vào trình gỡ rối, tôi sẽ dán mã kiểm tra vào bảng điều khiển & làm việc theo kiểu rất đặc biệt và về cơ bản chụp thói quen TDD của tôi dưới chân. Vì vậy, bất kỳ lời khuyên nào sẽ được đánh giá cao - nếu không thể gọi trình gỡ lỗi, bất kỳ cách giải quyết được đề xuất nào?
Tôi đang chạy phiên bản RStudio 0.99.447 trên OS X, ở chế độ cục bộ, với R 3.2.1.
Chỉnh sửa - Tôi cũng muốn biết thêm thông tin cơ bản về các tùy chọn, ví dụ: "tùy chọn X sẽ không bao giờ hỗ trợ gỡ lỗi, bởi vì nó đang chạy trong một quá trình chia nhỏ, hãy thử tùy chọn này Y thay thế."
Cập nhật - không có câu trả lời ở đây, tôi cũng yêu cầu tại https://support.rstudio.com/hc/communities/public/questions/204779797-Debugging-testthat-tests-in-RStudio (nơi tôi cũng chưa có bất kỳ phản hồi nào).
Bằng cách "Làm sạch và xây dựng lại", bạn có nghĩa là "Tạo và tải lại" không? Điều tôi thực sự ghét về điều đó là tôi thường vô tình cài đặt phiên bản phát triển của mình trên toàn cầu bằng cách thực hiện nó. 'dev_mode' là một giải pháp, nhưng đôi khi tôi quên bật nó lên, vì nó là một quy trình thủ công ... –
Tôi do dự khi sử dụng phương thức' browser() '- gần đây có ai đó trong nhóm của tôi (không phải tôi, may mắn thay) !) đã để lại một loạt các câu lệnh 'browser()' trong mã của chúng, nó đã đi vào sản xuất, điều này rất tệ. Đó là một bummer để có để thay đổi mã chỉ để xem xét nó. Mặc dù nó không phải là khá xấu trong trường hợp này để làm điều đó trong các tệp thử nghiệm - vì một số lý do khi sử dụng 'devtools :: test()' breakpoints không hoạt động trong các tệp thử nghiệm, nhưng chúng hoạt động trong các tệp mã trong Thư mục 'R /'. –
Không, có một lệnh "Làm sạch và xây dựng lại" riêng biệt, mà theo như tôi có thể nói là giống như "Xây dựng & tải lại" nhưng thực hiện một số lần dọn dẹp ban đầu để vào trạng thái có thể đoán trước được nhiều hơn. – alev