2012-05-02 56 views
7

Trong một thời gian, tôi đã cố gắng tìm ra cách chạy thử nghiệm UIAutomation từ Jenkins - mỗi khi tôi chạy bản dựng, nó xây dựng tốt, sau đó nó chạy lệnh cụ của tôi (sử dụng cùng một lệnh như chi tiết ở đây (Can Instruments be used using the command line?) và jenkins chỉ treo, cũng toàn bộ máy, và khi tôi nhìn vào màn hình hoạt động tôi có thể thấy một quá trình dụng cụ sử dụng 2GB bộ nhớ. tôi đã quyết định thay đổi tài khoản jenkins thành người dùng bình thường, đăng nhập và chạy các công cụ từ dòng lệnh - điều này đã làm việc tốt .. nhưng vẫn không có may mắn khi chạy nó từ jen kins.Chạy thử nghiệm UIAutomation iOS từ Jenkins

tôi đã thiết lập các Jenkins chiếm như một nhà phát triển - không có quản trị dù

Xin vui lòng cho tôi biết nếu có bất cứ điều gì khác mà tôi có thể cố gắng, hoặc nếu có ai đã có chạy thành công hướng dẫn của bạn này sẽ được nhiều đánh giá cao - Cảm ơn

+0

Làm cách nào để bạn chạy (tức là khởi động) Jenkins? –

+0

Hoạt động của nó như một deamon, vì vậy nó tải khi khởi động - nếu tôi cần dừng hoặc khởi động lại nó, tôi sử dụng launchctl – ChrisH

Trả lời

1

Vì vậy, nếu bạn chạy nó như một daemon, điều đầu tiên để kiểm tra những gì sẽ xảy ra nếu bạn chạy Jenkins ở phía trước Cách đơn giản nhất để làm điều đó là với lệnh java -jar jenkins.war [other options] (see this document).

+0

Cảm ơn rực rỡ - tất cả đều chạy ok - có cách nào tốt hơn để bắt đầu jenkins như thế này không? – ChrisH

+1

Điều duy nhất tôi có thể nghĩ đến là đặt nó vào một kịch bản và chạy tập lệnh đó từ một móc đăng nhập. –

+1

Sau đó, có https://github.com/stisti/jenkins-app – sti

0

Có thể bạn có thể sử dụng số https://github.com/houlianpi/robot4ios này.

Sau đó, trong Jenkins thực thi shell:

sh setup.sh 
sh runTests.sh ./sample/alltests.js "/Users/komejun/Library/Application Support/iPhone Simulator/5.0/Applications/1622F505-8C07-47E0-B0F0-3A125A88B329/Recipes.app/" 

và báo cáo sẽ được tự động tạo ra trong ./ynmsk-report/test.xml

+0

Điều đó nghe có vẻ thú vị, robot4ios sẽ quản lý thiết lập/teardown giữa các bài kiểm tra quá? Tôi lấy nó đầu ra xml là tương thích với jenkins để đầu ra có thể được hiển thị? – ChrisH

+0

có , tất cả, robot4ios sử dụng yuitest.so – houlianpi

+1

ynm3k đã được nâng cấp ở ngã ba khác https://github.com/douban/ynm3k, thay thế runTests.sh bằng test_runner/run.Không chắc chắn nếu mẫu trong dự án cũ vẫn có thể hoạt động. – firebear

4

Jenkins trên OS X được bắt đầu từ một kịch bản launchd và sẽ chạy như "daemon" theo mặc định. Điều cần làm là thay đổi người dùng trong tập lệnh được khởi chạy.

Đầu tiên, hãy chuẩn bị sẵn sàng để tắt máy Jenkins (trong "Quản lý Jenkins" trong GUI).

Sau đó dỡ bỏ các công việc từ launchd, như vậy:

$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 

Sau đó chỉnh sửa "UserName" bất động sản trong plist launchd, sử dụng người dùng mà bạn muốn chạy Jenkins. Ngoài ra còn có một GroupName bất động sản, mà bạn có thể muốn/cần phải điều chỉnh cho phù hợp với nhóm người dùng của bạn.

Cuối cùng, reload Jenkins với:

$ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist 

Hy vọng rằng sẽ giúp!

+0

Điều này làm việc hoàn hảo cho tôi. Theo mặc định GroupName được thiết lập để daemon và đó đã bị rơi ios giả lập – maschall

+0

Chúng tôi theo giải pháp này và nó đã làm việc nhưng một điều cần lưu ý - Có vẻ như trong phiên bản mới hơn của xcode bạn cần phải loại bỏ giá trị SessionCreate từ tổ chức của bạn .jenkins-ci.plist xem tại đây để biết thêm chi tiết: http://www.cimgf.com/2015/05/26/setting-up-jenkins-ci-on-a-mac-2/ – Daveloper87

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