2011-09-30 34 views
16

Chúng tôi có một ứng dụng web phong phú. Bộ điều khiển và mặt tiền dịch vụ của chúng tôi được viết bằng coffeescript (JavaScript) và jquery. Trong quá khứ họ sẽ là java.Làm cách nào để chạy thử nghiệm jasmine JavaScript từ Jenkins (Hudson) mà không cần tải JSP?

Để chạy thử nghiệm hoa nhài JavaScript của chúng tôi từ Jenkins/Hudson, chúng tôi sử dụng junit và htmlunit của java để tải trang jsp thử nghiệm theo định hướng bao gồm thông số hoa nhài.

Khi Htmlunit cố gắng chạy, nó thổi lên cố gắng getPage() có thể do đường dẫn lớp phân tích cú pháp XML cực kỳ khó khăn để theo dõi trong thế giới của chúng ta.

Chúng tôi chỉ muốn có thể chạy thử nghiệm JavaScript của chúng tôi từ Jenkins và báo cáo lỗi nếu thử nghiệm JavaScript không vượt qua. Chúng tôi chỉ sử dụng jsp và htmlunit để chạy thử nghiệm JavaScript. Chúng ta có thể tải các thử nghiệm JavaScript và mã javascript vào một công cụ JavaScript với Jenkins như là thứ khởi động nó không? Nếu vậy, làm thế nào?

Trả lời

0

Bạn có thể sử dụng selen không? Điều đó thực sự sẽ sử dụng một trình duyệt thực sự sau đó và nhận được càng gần với môi trường thực tế càng tốt.

+1

Cảm ơn bạn đã trả lời. Đó là một câu hỏi công bằng. Tôi quay trở lại câu hỏi làm thế nào để Jenkins khởi động selenium, để chạy thử nghiệm Jasmine, để xem kết quả. – finneycanhelp

+0

Đó chính xác là những gì tôi đang tìm kiếm ... – naugtur

+0

@ sarel-botha: Hãy xem: 1. SauceLabs, 2. Sauce OnDemand plugin và Saucery2 hoặc Saucery3 NuGet gói để làm cho thử nghiệm tự động của bạn với Jenkins và SauceLabs dễ dàng –

13

Có vẻ như bạn đang ở trong môi trường Java. My jasmine-maven-plugin có thể phù hợp.

+1

Cảm ơn bạn. Mã của bạn thật tuyệt vời và tôi đánh giá cao sự đóng góp của bạn. Có, tôi đang ở trong môi trường Java và mã của bạn đã truyền cảm hứng cho một giải pháp trong đó. Tôi muốn bỏ qua bằng cách sử dụng Java để chạy Jasmine và có một cái gì đó trong jenkins chỉ cần khởi động các bài kiểm tra hoa nhài. Có vẻ như tôi nên yêu cầu plugin jenkins. – finneycanhelp

6

trước đây tôi đã giải quyết vấn đề này bằng cách chạy các bài kiểm tra với một plugin Node.js gọi jasmine-node

này giải pháp tất nhiên đòi hỏi Node.js và một vài mô-đun nút để chạy đúng các bài kiểm tra hoa nhài. Không có trình duyệt thực nào chạy thử nghiệm, nhưng một trình mô phỏng sử dụng một mô-đun được gọi là jsdom, về cơ bản tạo ra một trình duyệt không đầu, và cụ thể hơn là một DOM, mà các xét nghiệm có thể tương tác với.

Có các mô-đun nút cho jQuery, gạch dưới và có thể được đẩy khác, vì vậy chúng cũng có thể được kiểm tra. Bạn thậm chí có thể bỏ qua toàn bộ giả lập trình duyệt nếu bạn muốn chạy thử nghiệm trong trình duyệt, mặc dù tôi thấy nó quá cồng kềnh so với thử nghiệm Jenkins tự động.

nút jasmine tạo các báo cáo kiểm tra jUnit, mà Jenkins có thể giải thích tốt.

Tôi vừa nhận ra có một số plugin jenkins-jasmine-node có thể làm giảm quy trình này.

8

Jasmine Reporters cũng sẽ là giải pháp. Nó có hướng dẫn chạy không đầu thông qua PhantomJS ví dụ, và nó có thể tạo ra JUnit XML để Jenkins có thể hiểu được kết quả kiểm tra một cách tự nhiên, tính toán kiểm tra đồ thị, thời lượng và thất bại theo thời gian.

Ngoài ra, trình bao bọc "xvfb-run" thường được cung cấp với xvfb là một trợ giúp tuyệt vời ở đây, vì vậy bạn có thể làm "xvfb-run phantomjs.runner.sh ..." trong môi trường thật sự không đầu.

1

Grunt là bạn

đã thiết lập này và nó thực sự đẹp , cộng với điều này mang lại cho bạn một nơi để bắt đầu làm xây dựng máy chủ làm những điều tốt đẹp khác như triển khai, thử nghiệm đơn vị, vv bạn biết, những điều tốt đẹp khác

+0

"bắt đầu làm cho máy chủ xây dựng của bạn làm những điều tốt đẹp khác như" ...? –

+0

triển khai, thử nghiệm đơn vị, v.v. bạn biết đấy, những điều thú vị khác – aqm

Các vấn đề liên quan