Đối với Javascript, một số khung kiểm thử tồn tại, như JSUnit hoặc js-test-driver. Họ là tốt, nhưng họ chạy các bài kiểm tra trong một trình duyệt. Đó là tốt, đặc biệt là để xác minh webapp của bạn đang chạy trong các trình duyệt khác nhau. Nhưng trên máy chủ tích hợp liên tục không có hệ thống cửa sổ (và không có trình duyệt) nào được cài đặt. Vậy có cách nào để chạy thử nghiệm mà không cần sử dụng trình duyệt không? Tốt nhất là sử dụng một trong các khung công tác hiện có, để các nhà phát triển có thể chạy thử nghiệm cục bộ trong trình duyệt của họ và hệ thống tích hợp liên tục chạy chúng không có trình duyệt.Khung kiểm tra nào cho Javascript hỗ trợ Kiểm tra mà không cần trình duyệt?
Trả lời
jsTest có thể chạy dòng lệnh hoặc làm plugin eclipse.
Tuy nhiên, hãy cẩn thận, bạn sẽ không nhận được mức độ bao phủ 100% bằng cách sử dụng công cụ như thế này nếu bạn cần hỗ trợ nhiều trình duyệt. Mỗi trình duyệt thực hiện JavaScript khác nhau (tức là: IE). Do đó, cách duy nhất để kiểm tra đầy đủ JavaScript của bạn là chạy thử nghiệm trong tất cả các trình duyệt mà bạn hỗ trợ.
Tôi không chắc chắn lý do tại sao bạn nói rằng bạn không thể nhận được mức độ phù hợp 100%. Bảo hiểm có nghĩa là mã được thực hiện. Vấn đề bạn chỉ đến (khả năng tương thích giữa các trình duyệt) là cùng một mã có thể có nghĩa là (và làm) những thứ khác nhau trong các môi trường thực thi khác nhau. Ý nghĩa của điều đó là nếu bạn có 100% phạm vi phủ sóng trong Firefox, nó có thể không cho bạn biết tất cả những gì bạn muốn biết về hành vi của mã trong IE. Bạn có thể nhận được bảo hiểm 100% mà không nhận được 100% kiến thức.(Và thậm chí 100% mức độ phù hợp trong tất cả các trình duyệt không giống với 100% kiến thức, nhưng đó là một vấn đề khác.) –
Đây là 5 năm trước. Phát triển web trở lại sau đó là đầy đủ các phân nhánh phụ thuộc vào trình duyệt vì các API rất khác nhau. Nếu bạn chạy thử nghiệm của mình trong Firefox, một số dòng lệnh, v.v. bạn không thể thực hiện _any_ của mã trong nhánh khác xử lý một trình duyệt khác. Vì bạn để lại một nửa chi nhánh của bạn chưa được kiểm tra, bạn không thể yêu cầu bảo hiểm 100% mã. Ngày nay, cảnh quan rất khác nhau. Tôi thành thật không thể nhớ lần cuối tôi phải làm những việc khác nhau cho các trình duyệt khác nhau. – geowa4
Tôi tin rằng Canoo WebTest có thể chạy mà không cần trình duyệt. Đó là cơ bản một khuôn khổ frontend thử nghiệm nhưng có thể được sử dụng để kiểm tra hoạt Javascript cũng như:
JSpec có thể chạy mà không cần trình duyệt (sử dụng Rhino). Nhưng cũng hỗ trợ được chạy trong trình duyệt là tốt.
http://visionmedia.github.com/jspec/
Nó cũng cung cấp một cú pháp đặc tả phong cách thoải mái:
describe 'ShoppingCart'
describe 'addProduct'
it 'should add a product'
cart.addProduct('cookie')
cart.addProduct('icecream')
cart.should.have 2, 'products'
end
end
end
Bằng cách chạy tất cả các bài kiểm tra đơn vị của bạn bên ngoài của một trình duyệt, bạn cũng nhận được những lợi ích của việc bảo đảm tách logic của bạn từ html/thuyết trình lớp (hữu ích cho các ứng dụng web, có thể overkill cho các kịch bản nhỏ).
Dự án jspec đã chết và trước khi trang web của họ biến mất hoàn toàn, đề nghị Jasmine thay thế. http://stackoverflow.com/questions/3912312/jspec-no-longer-supported –
Jasmine sẽ chạy khá vui vẻ bên trong node.js.
Hãy xem các bài viết sau:
Bên cạnh đó, chúng tôi có một máy chủ jsTestDriver chạy với một vài trình duyệt web (như giao diện điều khiển từ xa runners) như một tài nguyên cho Jenkins, vì vậy bạn có thể có CI với thử nghiệm trong trình duyệt web.
- 1. Kiểm tra hỗ trợ thuộc tính CSS của trình duyệt bằng JavaScript?
- 2. Cách Kiểm tra xem trình duyệt có hỗ trợ HTML5 không?
- 3. Làm cách nào để kiểm tra trình duyệt hỗ trợ cảm ứng bằng JS/jQuery?
- 4. Sử dụng Modernizr để kiểm tra hỗ trợ trình duyệt cho css calc()
- 5. Cách kiểm tra xem trình duyệt có hỗ trợ thuộc tính giữ chỗ gốc không?
- 6. Kiểm tra tính tương thích của trình duyệt đối với hỗ trợ API Lịch sử HTML5?
- 7. Lập trình kiểm tra hỗ trợ iMessage của liên hệ
- 8. Trình kiểm tra loại cho JavaScript?
- 9. Phương pháp kiểm tra hỗ trợ kích thước nền css
- 10. Có cách nào để kiểm tra xem trình duyệt di động có hỗ trợ flash bằng công nghệ web không?
- 11. Không hỗ trợ memcheck valgrind kiểm tra mmap
- 12. Cách hỗ trợ kiểm tra MBUnit trong Resharper 7
- 13. Trình kích hoạt mã Javascript hoặc trình kiểm tra
- 14. khung kiểm tra đơn vị cho C
- 15. jQuery kiểm tra mà RadioButton được kiểm tra
- 16. javascript kiểm tra không null
- 17. Khung kiểm tra đơn vị cho Vala
- 18. Kiểm tra kho svn mà không cần tệp .svn
- 19. Kiểm tra tệp mà không cần mở tệp bằng C++?
- 20. Xây dựng tốt nhất mà không cần kiểm tra
- 21. Khung kiểm tra tự động
- 22. Khung kiểm tra đơn vị C nào?
- 23. Trình duyệt nào hỗ trợ HTML SHORTTAG?
- 24. Kiểm tra khoảng khung chính?
- 25. Kiểm tra xem JS có hỗ trợ thuộc tính CSS không?
- 26. JavaScript cho bài kiểm tra trực tuyến?
- 27. Trình kiểm tra trình duyệt Webkit thiếu một vài điều
- 28. Làm thế nào để kiểm tra 404 NOT FOUND với khung kiểm tra django?
- 29. BDD nào cho các ứng dụng JS xương sống hỗ trợ kiểm tra tự động
- 30. Sử dụng khung kiểm tra đơn vị cho C Kiểm tra
Đó không phải là câu trả lời cho câu hỏi của bạn, nhưng tôi khuyên bạn nên thử nghiệm điều đó trong trình duyệt thực. Đây là những gì người dùng cuối sẽ thấy, vì vậy điều này cần được kiểm tra. CI được cài đặt trên hệ điều hành nào? –
CI được cài đặt trên linux, nhưng không có X. Vì vậy, thử nghiệm trong trình duyệt không thể thực hiện trên máy chủ CI. Trong các trình duyệt nó sẽ được kiểm tra bởi các nhà phát triển anyway, nhưng tôi muốn thêm các bài kiểm tra cũng để CI. – Mnementh
Làm thế nào về phantomjs? – ShrekOverflow