Làm thế nào tôi có thể gỡ lỗi hiệu quả trong R nếu gói không xác định do đánh giá lười biếng. Tôi muốn giữ chức năng cơ bản browser()
vì nó hoạt động tốt - ngay cả với testthat package
. Như được giải thích trong post, --with-keep.source
được đặt cho dự án của tôi trong "tùy chọn dự án => Công cụ xây dựng".Gói gỡ lỗi :: chức năng() mặc dù đánh giá lười biếng được sử dụng
Để tái tạo hành vi, tạo ra một gói TestDebug
chứa
myfun <- function(a,b) {return(a+b)}
và một kịch bản example.R
{
browser()
TestDebug::myfun(1,2)
}
Sửa: Các tình huống mà TestDebug::myfun(1,2)
cuộc gọi otherpackage::myfun2(1,2)
nên cũng được bảo hiểm. Tôi nghĩ tình hình sẽ xảy ra trong mọi gói "thực"?
Điều này giải quyết được vấn đề cho ví dụ của tôi. Tôi nhận ra rằng khi bạn có một gói "thực" với nhiều cấp độ hơn, ví dụ: 'TestDebug :: myfun (1,2)' gọi 'otherpackage :: myfun2 (1,2)' bạn chạy lại vào cùng một vấn đề. Xem chỉnh sửa của tôi về câu hỏi. – Christoph
Câu trả lời được cải thiện của bạn ít nhất là một giải pháp thay thế. Tôi vẫn thắc mắc, liệu không còn lựa chọn nào khác. Mọi thứ như một tùy chọn gỡ lỗi 'skip_base_functions' có thể có hành vi mong muốn. – Christoph