2012-04-23 37 views
14

Có thể thực hiện các thử nghiệm đơn vị QUnit (javascript) của tôi từ Jenkins không? Kịch bản xây dựng của tôi là Apache Ant. Jenkins có thực hiện điều này như là một Bước Xây dựng riêng biệt hay tôi cần phải thêm một thứ gì đó vào cấu hình của kịch bản xây dựng Ant của tôi?Chạy thử nghiệm QUnit với Jenkins và Apache Ant?

+0

Đối với QUnit/Jenkins, bạn cũng có thể sử dụng phần mở rộng Arquillian-QUnit: http://stackoverflow.com/questions/7756644/jenkins-qunit/18263488#18263488 –

Trả lời

18

Vì vậy, cuối cùng tôi đã tìm ra được điều này.

Dưới đây là tôi end-to-end thực hiện:

  1. Install PhantomJS (http://phantomjs.org/) - Tôi đã cài đặt này trong xây dựng/công cụ thư mục của tôi

  2. Install script PhantomJS QUnit Runner (https://gist.github.com/1588423) - cũng đã cài đặt điều này trong thư mục công cụ/xây dựng của tôi

  3. Nhập mục tiêu sau vào tệp build.xml của tôi:

<target name="qunit" description="runs QUnit tests using PhantomJS"> 
     <!-- QUnit Javascript Unit Tests --> 
     <echo message="Executing QUnit Javascript Unit Tests..."/> 
     <apply executable="path-to-your-phantomjs-bin-folder/phantomjs" > 
     <arg value="-path-to-your-build-tools/qunit-runner.js" /> 
     <arg line="--qunit path-to-your-qunit-folder/qunit.js --tests path-to-your-test-folder --juni path-where-you-want-to-write-the-JUnit-style-output/qunit-results.xml" /> 
     <fileset dir="${basedir}/${dir.test}" includes="tests.js" /> 
     <srcfile/> 
     </apply> 
    </target> 
  1. khuôn khổ dự án cấu hình Jenkins của tôi, bây giờ tôi gọi Ant với "QUnit giảm bớt"

  2. Tôi chỉ Jenkins cho JUnit kiểu tập tin đầu ra XML

Và, đây là quy trình làm việc:

  1. Kiểm tra thay đổi vào repo của tôi
  2. Jenkins sẽ thăm dò ý kiến ​​GitHub cho những thay đổi
  3. Nếu có bất kỳ thay đổi, Jenkins sẽ kéo xuống
  4. Ant sẽ được gọi, làm xây dựng, sau đó chạy đơn vị của tôi kiểm tra
  5. Kết quả kiểm tra sẽ được công bố trong một Định dạng XML giống như JUnit
  6. Jenkins sẽ phân tích tệp đầu ra này. Nếu không có kiểm tra nào bị lỗi, bản dựng sẽ được đánh dấu là "Thành công". Nếu bất kỳ thử nghiệm thất bại, việc xây dựng sẽ được đánh dấu là "không ổn định"
  7. Jenkins sẽ triển khai thay đổi web
  8. Jenkins sẽ dọn dẹp các công việc khu vực

PS: Tại thời điểm này, bạn phải tự xóa tệp đầu ra XML loại JUnit. Tôi sẽ sửa lỗi này sau.

PS: Tải xuống qunit tùy chỉnh.js (https://gist.github.com/2488794)

+5

Tại sao QUnit được tùy chỉnh? Không phải bây giờ bạn đang mắc kẹt với phiên bản đó? –

+0

"--juni đường dẫn-nơi-bạn-muốn-để-ghi-the-JUnit-style-đầu ra/qunit-results.xml" " Nó phải là - Quân sự: lol: – kidnan1991

1

Nếu tôi hiểu thiết lập của bạn chính xác, bạn có thể chạy bước xây dựng Ant cung cấp cho nó vị trí của các thông số build.xml, mục tiêu cấp cao nhất và -D (nếu có). This có thể có một số trợ giúp.

+1

Trợ giúp này có được không? –

0

QUnit này ngay bây giờ bản thân duy trì một Á hậu phantomjs:

https://github.com/jquery/qunit/tree/master/addons/phantomjs

Vì vậy, giả sử bạn đã đã cài đặt phantomjs, lấy runner.js từ liên kết ở trên (hoặc sử dụng bower/js package manager), đặt nó ở đâu đó Jenkins có thể tìm thấy nó, và sau đó sử dụng:

phantomjs path/to/runner.js path/to/your/qunit_tests.html 

Nó cung cấp cho sản lượng tối thiểu như thế này:

$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html 
Took 29ms to run 11 tests. 11 passed, 0 failed. 

Hoặc như thế này nếu nó không thành công:

$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html 
Test failed: sinon tests of navigator.id.watch: watch sees current user 
    Failed assertion: check user, expected: current user, but was: baz 
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:556 
    at file:///home/harry/superlists/accounts/static/tests/tests.html:69 
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:203 
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:361 
    at process (file:///home/superlists/superlists/static/tests/qunit.js:1453) 
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:479 
Took 29ms to run 11 tests. 10 passed, 1 failed. 

Không junit-xml tích hợp, nhưng ít nhất nó trả về một mã lỗi nếu nó không thành công, vì vậy nó sẽ thất bại trong việc xây dựng trong jenkins ...

$ echo $? 
1 
+0

liên kết cập nhật đến runner.js https://github.com/jonkemp/qunit-phantomjs-runner – zbug

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