Karma là trình duyệt thử nghiệm trình duyệt.
Ý tưởng là các trình duyệt không có khái niệm tải tệp thử nghiệm, chạy chúng và báo cáo kết quả. gì nghiệp thực hiện là (xấp xỉ):
- bắt đầu một máy chủ web nhỏ để phục vụ "client-side" javascript file được thử nghiệm (1)
- cũng phục vụ "client-side" file javascript với kiểm tra (hoặc Specs, khi chúng thường được gọi là) (2)
- phục vụ cho một trang web tùy chỉnh mà sẽ chạy javascript mã cho các bài kiểm tra (3)
- khởi động trình duyệt để tải trang này (4)
- báo cáo kết quả kiểm tra cho máy chủ (5)
- nghiệp sau đó có thể một lần nữa báo cáo kết quả tập tin văn bản, giao diện điều khiển, bất cứ điều gì máy chủ CI của bạn thích, vv ...
Nhìn vào từng phần:
(1) Những file đó sẽ js thực tế của bạn các tập tin ; bạn sẽ nói với karma cách tải chúng. Nếu bạn sử dụng requirejs, có một plugin nghiệp, và một số cấu hình là cần thiết.
(2) Những thử nghiệm này có thể được viết bằng nhiều khuôn khổ kiểm tra Javascript (Jasmine, QUnit, Mocha) ; đây là mã JS được chạy trong trình duyệt.
(3) Trang web tùy chỉnh sẽ khác đôi chút đối với mỗi khung kiểm tra ; đây là lý do tại sao nghiệp có bổ sung cho các khuôn khổ khác nhau.
(4) Karma có thể khởi chạy trang trong nhiều trình duyệt (FF, Chrome, hoặc trình duyệt không đầu như PhantomJs.)
(5) Báo cáo với nghiệp chướng là, một lần nữa, khung phụ thuộc, và xử lý với các plugin nghiệp .
Vì vậy, để giải đáp thắc mắc của bạn:
- trong Java, hầu hết mọi người sử dụng JUnit đó là cả một khuôn khổ để viết bài kiểm tra và chạy chúng, nhưng không có vấn đề phân biệt môi trường mà kiểm tra được chạy và báo cáo thử nghiệm được tổng hợp; nghiệp sẽ là phần còn thiếu giữa một JUnit Suite và một JUnit TestRunner
- Vâng, bạn có thể làm mọi thứ mà nghiệp tạo "bằng tay" - chọn một khung (hoa nhài, qunit, mocha) và làm theo hướng dẫn.Ưu điểm của nghiệp là nó cung cấp một giải pháp out-of-the-box, nếu bạn đang ở trong một thiết lập tiêu chuẩn.
- Karma có thể được sử dụng cho cả đơn vị kiểm tra (với hoa nhài/QUnit/bất cứ điều gì) và kiểm tra tích hợp (mà sẽ sử dụng API khác, như webdriver, để lái xe trình duyệt)
Chúng tôi chạy mocha không có Karma, nhưng [rất nhiều nhà phát triển sử dụng khuôn khổ thử nghiệm] (http://stackshare.io/stackups/karma-runner-vs-mocha-vs-jasmine) –