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?
Trả lời
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:
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
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
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>
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"
Tôi chỉ Jenkins cho JUnit kiểu tập tin đầu ra XML
Và, đây là quy trình làm việc:
- Kiểm tra thay đổi vào repo của tôi
- Jenkins sẽ thăm dò ý kiến GitHub cho những thay đổi
- Nếu có bất kỳ thay đổi, Jenkins sẽ kéo xuống
- Ant sẽ được gọi, làm xây dựng, sau đó chạy đơn vị của tôi kiểm tra
- Kết quả kiểm tra sẽ được công bố trong một Định dạng XML giống như JUnit
- 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"
- Jenkins sẽ triển khai thay đổi web
- 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)
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 đó? –
"--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
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.
Trợ giúp này có được không? –
Tôi đã viết một nhiệm vụ đặc biệt cho Ant
Cảm ơn nhiệm vụ này, Phil. Đó chỉ là những gì tôi cần vào lúc này. – carbontax
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
liên kết cập nhật đến runner.js https://github.com/jonkemp/qunit-phantomjs-runner – zbug
- 1. QUnit sẽ không chạy thử nghiệm
- 2. Jenkins + qUnit
- 3. Thử nghiệm với Robolectric và ANT
- 4. Ant, chạy tất cả JUnit thử nghiệm
- 5. Chạy thử nghiệm UIAutomation iOS từ Jenkins
- 6. Bắt QUnit để chạy thử nghiệm theo thứ tự
- 7. Công việc Jenkins/Maven - chạy bộ thử nghiệm hai lần?
- 8. Biểu đồ Xu hướng Kết quả Thử nghiệm Jenkins Trống, nhưng Thử nghiệm đang Chạy
- 9. Thử nghiệm A/B với apache và mod_rewrite
- 10. Lỗi Qunit: xác nhận bên ngoài ngữ cảnh thử nghiệm
- 11. Chạy thử nghiệm NUnit viết bằng C# với Jenkins trên Linux
- 12. Làm thế nào để chạy thử nghiệm QUnit và lấy lại kết quả thử nghiệm trong C# thông qua gọi lại JavaScript?
- 13. Chạy thử nghiệm XUnit.net với TestDriven.net
- 14. Cách thực hiện các thử nghiệm Selenium 2 trong Jenkins
- 15. Thử nghiệm hiệu suất Apache vs NodeJs
- 16. Chạy thử nghiệm Maven Webdriver Testng trên Jenkins, lỗi không xác định được
- 17. Meteor với QUnit
- 18. Apache Ant Profiler
- 19. Làm cách nào để chạy thử nghiệm casperjs javascript từ Jenkins?
- 20. Maven 2 Không chạy thử nghiệm Junit 4
- 21. Chạy thử nghiệm trong Jenkins tự động sau mỗi lần commit (thay đổi)
- 22. Chạy thử nghiệm với hơn một triệu trường hợp thử nghiệm
- 23. Có thể chạy thử nghiệm đơn vị Rails trên môi trường khác với thử nghiệm không?
- 24. Eclipse thực sự chạy thử nghiệm Junit như thế nào?
- 25. Thử nghiệm đơn vị sau khi thử nghiệm
- 26. Có một khuôn khổ để chạy thử nghiệm đơn vị trên mô-đun Apache C không?
- 27. Apache Ant Ít hơn
- 28. Làm thế nào để tích hợp các thử nghiệm QUnit vào Yii
- 29. Chọn danh sách cho các mô-đun QUnit trong thanh thử nghiệm?
- 30. Chạy thử nghiệm JUnit song song
Đố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 –