Tôi có Jenkins với plugin Xcode được cấu hình để chạy kiểm tra đơn vị bằng cách thêm hành động xây dựng thử nghiệm vào cài đặt Đối số xcodebuild tùy chỉnh. Để biết thêm thông tin về cách Jenkins chạy thử nghiệm đơn vị ở tất cả với Xcode 5, hãy xem số question này.xcodebuild làm hỏng kết quả kiểm tra đầu ra khi đầu ra được chuyển hướng đến tệp
Bây giờ tôi chạy nó, có vẻ như kết hợp đầu ra console từ các câu lệnh NSLog hoặc thông báo ** TEST SUCCEEDED **
cuối cùng với kết quả kiểm tra, do đó thỉnh thoảng vấp phải trình phân tích cú pháp chuyển đổi kết quả kiểm tra đơn vị sang định dạng JUnit cần thiết cho Jenkins.
Ví dụ, các bản ghi Jenkins cho thấy đầu ra như thế này:
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (** TEST SUCCEEDED **
0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
khi nó thực sự nên là:
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
** TEST SUCCEEDED **
tôi đã nhìn vào này hơn nữa và kéo Jenkins ra của hình ảnh. Nếu tôi chạy lệnh xcodebuild trực tiếp tại dấu nhắc lệnh:
xcodebuild \
-workspace project.xcworkspace \
-scheme Tests \
-configuration Release \
-sdk iphonesimulator7.0 \
-destination "platform=iOS Simulator,name=iPhone Retina (4-inch),OS=latest" \
test
đầu ra luôn xuất hiện tốt, theo thứ tự.
Tuy nhiên, nếu tôi ống đầu ra để một chương trình khác hoặc chuyển hướng đến một tập tin:
xcodebuild \
-workspace project.xcworkspace \
-scheme Tests \
-configuration Release \
-sdk iphonesimulator7.0 \
-destination "platform=iOS Simulator,name=iPhone Retina (4-inch),OS=latest" \
test > xcodebuild.out
cat xcodebuild.out
Đầu ra là out-of-trật tự như đã mô tả ở trên.
Điều này có thể do bộ đệm hoặc thiếu đệm khi không trực tiếp ghi vào chế độ xuất chuẩn không? Có ai biết tại sao điều này đang xảy ra và bất kỳ cách giải quyết nào mà tôi có thể thực hiện để sửa chữa nó?
phân tích cú pháp nào bạn sử dụng để thay đổi sản lượng đến kết quả xét nghiệm junit? – kocodude
[OCUnit2JUnit] (https://github.com/ciryon/OCUnit2JUnit) – GBegen