2013-07-15 16 views
6

Làm cách nào để làm cho trình kiểm tra máy chủ/trình kiểm tra gói động dựa trên sơ đồ hiện tại? Ngay bây giờ giá trị được đặt thành:Động "máy chủ thử nghiệm" hoặc trình tải gói cho Kiểm tra đơn vị iOS?

$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1 

Vấn đề là tôi có 4 ứng dụng trong không gian làm việc và tôi muốn sử dụng cùng một bộ kiểm tra đơn vị cho tất cả chúng. Làm cách nào để tự động thay đổi phần "MyApp1" dựa trên lược đồ hiện tại? Nó có phải là một biến môi trường dựa trên xây dựng? Tôi đã thử đặt nó thành những thứ như $ (PROJECT_NAME) nhưng những người này dường như có tên của bộ thử nghiệm.

+0

Tôi phải đối mặt với cùng một vấn đề. Tôi có một vài mục tiêu mà tôi muốn thực hiện cùng một bài kiểm tra đích. Rõ ràng là quá nhiều quá xử lý cho Xcode. Giải pháp của tôi là thêm tập lệnh để thay đổi XCodeProject rồi nhắm mục tiêu ứng dụng phù hợp. –

Trả lời

7

Để thực hiện việc này, bạn cần phải có một biến bên trong cài đặt bản dựng - điều này có vẻ đơn giản nhưng không phải vậy. Nếu bạn thiết lập một biến môi trường thông qua một Pre- hoặc Post-bước trong ứng dụng hoặc chương trình thử nghiệm, nó không có vẻ như thể nó sẽ được chọn ở đây. Các cài đặt xây dựng, sau khi tất cả, xảy ra trước khi xây dựng. Điều tương tự cũng đúng với macro tiền xử lý, mặc dù thực hiện điều này bằng cách sử dụng xcodebuild và truyền trong tùy chọn tùy chỉnh có thể hoạt động.

Cách duy nhất tôi biết để làm điều này là sử dụng tệp xcconfig. Tạo một và áp dụng nó vào (ít nhất) mục tiêu thử nghiệm của bạn. Các nội dung cần bao gồm một cái gì đó như thế này: THINGUNDERTEST=FooBar

Bây giờ trong môi trường dự án của bạn, thời tiết trong một xcconfig hoặc hồ sơ dự án, thiết lập BUNDLER_LOADER tới: $(BUILT_PRODUCTS_DIR)/$(THINGUNDERTEST).app/$(THINGUNDERTEST)

Điều đó sẽ làm việc. Bây giờ bạn có thể thay đổi THINGUNDERTEST thông qua các phương tiện khác nhau và nhận được ít nhất một số hành vi năng động. Điều này có thể làm việc cho bạn hoặc có thể không, tùy thuộc vào nhu cầu của bạn - nhưng nó có lẽ chỉ là một điểm khởi đầu.

+0

Trong trường hợp của tôi, mục tiêu thử nghiệm của tôi yêu cầu một ứng dụng máy chủ. Vì vậy, 'BUNDLER_LOADER' đọc giá trị từ' TEST_HOST'. Vì vậy, tôi đặt '$ (BUILT_PRODUCTS_DIR)/$ (THINGUNDERTEST) .app/$ (THINGUNDERTEST)' thành 'TEST_HOST' thay thế. – Hlung

+0

Điều này hoạt động thực sự. Trong trường hợp của tôi, tôi đã gửi giá trị được giải quyết động của '' 'THINGUNDERTEST''' vào ứng dụng dưới dạng đối số dòng lệnh xctool. Tương tự nên làm việc cho xcodebuild. Ví dụ. '' 'xcodebuild THINUNDERTEST = Thử nghiệm MyApp''' –