8

Chúng tôi sử dụng Jenkins để tích hợp liên tục các ứng dụng web .NET với NAnt/NUnit cho các bài kiểm tra .NET. Jenkins được cấu hình với 9 nô lệ (tất cả đều là Windows Server 2003) chạy nhiều bản dựng cùng với các bài kiểm tra tự động của họ.Làm thế nào để sử dụng các trình duyệt từ xa cho nhiệm vụ js-test-driver trên Jenkins?

Chúng tôi đang cố gắng thiết lập trình điều khiển js-test để chạy thử nghiệm đơn vị JavaScript của chúng tôi và tác vụ NAnt bên dưới đang hoạt động tốt trên máy trạm của nhà phát triển. Internet explorer là trình duyệt duy nhất mà chúng tôi muốn kiểm tra, vì đó là trình duyệt mục tiêu duy nhất cho tất cả các ứng dụng web của chúng tôi.

<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--port 9876"/> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

Chúng tôi đang chạy vào vấn đề với cùng một công việc trên Jenkins, có lẽ bởi vì:

  1. đó là một máy chủ và chúng tôi đang chạy như một tài khoản dịch vụ
  2. có những hạn chế bảo mật trên các cài đặt trình duyệt trên máy chủ

Trang GettingStarted trên js-test-driver wiki cho biết chúng tôi có thể chạy trình duyệt s trên một máy khác với nơi máy chủ trình điều khiển js-test đang chạy:

Trước khi bạn có thể chạy bất kỳ thử nghiệm nào, bạn cần khởi động máy chủ thử nghiệm và chụp ít nhất một trình duyệt phụ. Máy chủ không phải nằm trên máy có nhân vật thử nghiệm và chính bản thân các số cũng có thể ở các máy khác nhau.

  1. Có ai đã làm điều này trên thiết lập Jenkins/Windows không?
  2. Có lựa chọn thay thế nào khác cho thiết lập có thể mở rộng để chạy trình điều khiển js-test không?

Trả lời

2

Tôi đã thực hiện điều gì đó tương tự nhưng không có thiết lập 100% cửa sổ, nhưng tôi đoán bạn sẽ không gặp bất kỳ sự cố nào khi thực hiện điều gì đó tương tự trên Windows. Trong trường hợp của tôi, tôi phải thử nghiệm trên nhiều trình duyệt hơn: IE7, IE8, IE9, Chrome, Safari, Firefox 3.6 và các phiên bản mới nhất, vì vậy, những gì tôi đã làm, đã cài đặt các máy ảo với tất cả các trình duyệt mà tôi cần, và các máy khác với jstestdriver chạy trên chế độ máy chủ:

java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224 

Tất cả các máy ảo với các trình duyệt, có luôn một thể hiện của họ trỏ đến máy chủ (http: // [jstd-server-ip]: 4224/capture)

Trên những máy đó, tôi đã tạo một tác vụ theo lịch, đặt lại phiên bản trình duyệt mỗi sáng, bởi vì tôi đã thấy một số trình duyệt, sp IE7 sinh thái có xu hướng ngừng hoạt động nếu nó chạy hơn 3 ngày.

taskkill /f /IM iexplore.exe 
iexplore.exe http://[jstd-server-ip]:4224/capture 

Máy và máy chủ jstestdriver đang chạy mọi lúc. Tôi không chắc chắn nếu trong trường hợp của bạn là có thể.

Sau đó, trên các ứng dụng, tôi đang sử dụng một plugin maven để thử nghiệm ra mắt: http://code.google.com/p/jstd-maven-plugin/wiki/GettingStarted mà làm việc tốt hơn trong trường hợp của tôi, nhưng nếu bạn không sử dụng maven, tôi đoán rằng trong Nant shoud được một cái gì đó như thế này:

<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

Và trong JsTestDriver.conf thêm dòng này lên hàng đầu:

server: http://[jstd-server-ip]:4224 

này cho khách hàng của bạn thể hiện của jstestdriver thực hiện bởi Jenkin s để sử dụng http: // [jstd-server-ip]: 4224 là máy chủ của nó.

Hy vọng điều này sẽ giúp bạn!

+0

Tuyệt vời, cảm ơn bạn. Tôi sẽ kiểm tra điều này và cập nhật cho bạn ... –

+0

Hoạt động như một sự quyến rũ ... Tôi đã thực hiện một thay đổi nhỏ hơn trong kịch bản NAnt để xóa đối số trình duyệt cũng như vậy, vì vậy: ' ' –

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