Câu hỏi ngắn và có vẻ ngu ngốc vì đơn giản và bạn nghĩ mọi nơi: có ai nhận được bất kỳ loại mã bảo hiểm nào để làm việc trong dự án đầu cuối RequireJS (non NodeJS) không?Bảo hiểm mã JavaScript trong các mô-đun RequireJS/AMD
Có vẻ như một câu hỏi ngu ngốc vì sự phổ biến của các phương pháp TDD trong thế giới JS và sự tiếp quản phát triển AMD.
Tôi đã thử một triệu phương pháp tiếp cận, tất cả đều thiếu. Dự án của tôi là dự án Backbone với Thử nghiệm Đơn vị Jasmine:
1) JSTD có plugin Bảo hiểm. JSTD gặp sự cố khi tải và lắp đặt các mô-đun AMD. Nếu tôi chạy JSTD trên một tệp js duy nhất (được kết hợp bởi trình tối ưu hóa RequireJS) thì phạm vi mã hoạt động rất đẹp, XÁC NHẬN rằng phạm vi được thu thập và các số liệu được xác định trên tệp ENTIRE. Tuyệt vời, điều đó vô ích vì nó bao gồm thư viện của bên thứ 3 và bởi vì tôi không thể nhắm mục tiêu một đơn vị duy nhất để giúp kiểm tra sự phát triển. Argh.
2) Số dư trung bình - tổng số không thành công, không giống như mô-đun AMD.
3) Chrome cụ thể & Firebug cụ thể 'sống' nhạc cụ - thất bại, không thích mô-đun AMD.
Mọi cách tiếp cận tôi cố gắng dường như yêu cầu số lượng lớn công việc tùy chỉnh. Vì vậy, có lẽ tôi cần phải quay một giải pháp tùy chỉnh từ đầu?
Cách tiếp cận sau: mở rộng trình tối ưu hóa RequireJS thành mã công cụ và tạo mức độ phù hợp. Nó sẽ là bộ nhớ trong bộ nhớ có thể được kích hoạt với cờ require.config ({instrument: true}). Mỗi lần yêu cầu tải một mô-đun, nó sẽ tự động đặt nó và đặt nó vào kho lưu trữ mô đun của nó. Số liệu thống kê bảo hiểm được thu thập trong một đối tượng bên dưới đối tượng yêu cầu toàn cục và có thể truy cập từ bất kỳ đâu, giả sử sau khi chạy thử nghiệm Jasmine.
Nhập liệu?
phạm vi mã không nhỏ để triển khai. Bạn sẽ phải làm AST hackery với một cái gì đó giống như bunker. – Raynos
Đồng ý. Đó là lý do tại sao tôi bắt đầu bằng cách sử dụng các thư viện AST & Instrumentation hiện có (Esprima, Node-Cover). Tôi có hầu hết các sửa đổi mã RequireJS được thực hiện và đang làm việc trên bộ phận thiết bị đo lường và bảo hiểm. – Bernardo