2012-05-16 45 views
6

Tôi có một vùng làm việc XCode với một dự án giao diện người dùng (UI) và một dự án logic lõi (Core). Tôi muốn kiểm tra đơn vị OCUnit trong dự án giao diện người dùng, vì vậy tôi đã thêm một mục tiêu mới để thử nghiệm, như thường được thực hiện.Kiểm tra đơn vị với một thư viện tĩnh

Tôi có thể chạy thử nghiệm tốt cho đến khi tôi đưa vào báo cáo nhập cho các lớp trong mục tiêu giao diện người dùng chính mà lần lượt tham chiếu đến dự án Core.

Lỗi tôi nhận được là "Không tìm thấy tệp Lexical hoặc Preprocessor 'xxx.h'. Tôi không nhận được thông báo này khi tôi xây dựng mục tiêu giao diện người dùng chính trực tiếp.

Nó giống như mục tiêu giao diện người dùng chính biết về Core khi nó được xây dựng, nhưng khi nó được tham chiếu từ mục tiêu thử nghiệm thì dường như không biết gì về Core.

Tôi đã thực hiện bước thêm tham chiếu đến dự án lõi bằng cách sử dụng "Liên kết nhị phân với thư viện" Mục trong danh sách vẫn còn màu đỏ. Một đầu mối? Có thể, nhưng tham chiếu màu đỏ trong danh sách Liên kết không giữ mục tiêu UI từ việc xây dựng và sử dụng các lớp lõi. Tôi cũng thực hiện mục tiêu chính là sự phụ thuộc của mục tiêu thử nghiệm.

Trả lời

9

Hãy chắc chắn rằng bạn kiểm tra mẫu mã Apple "Unit Tests": https://developer.apple.com/library/ios/#samplecode/UnitTests/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011742

Hãy chắc chắn rằng dự án thư viện của bạn được thiết lập như một dependancy trong thử nghiệm tiêu OCUnit của bạn xây dựng giai đoạn, và nó liên kết dưới dạng thư viện.

Mở dự án của bạn bằng Xcode. Trong menu Tệp, đi tới Thiết đặt Dự án ... (hoặc Thiết đặt Vùng làm việc ... nếu bạn đang sử dụng không gian làm việc). Nhấp vào Nâng cao ... và đảm bảo rằng Duy nhất được chọn. Làm sạch và xây dựng lại.

Kiểm tra BUILD_PRODUCTS_DIR của bạn để xem các tiêu đề cho thư viện của bạn có hiển thị trong đó không. Nếu không, trước tiên hãy kiểm tra các giai đoạn xây dựng trong mục tiêu thư viện của bạn để đảm bảo các tiêu đề bạn cần có trong phần Công khai (phần Dự án cũng có thể hoạt động, nhưng hãy thử Công khai và xem cách giải quyết vấn đề của bạn).

Điều đó bao gồm các vấn đề phổ biến nhất mà mọi người dường như gặp phải trong hoàn cảnh của bạn. Khi nghi ngờ, hãy kiểm tra các thiết lập mục tiêu trong mẫu UnitTests với mẫu của bạn. Chúc may mắn!

0

Trong mục tiêu thử nghiệm của bạn, hãy chuyển tới Cài đặt bản dựng. Thêm đường dẫn đến tiêu đề thư viện tĩnh của bạn vào Đường dẫn tìm kiếm tiêu đề.

2

Ngoài câu trả lời của Jon Reid, tôi cũng phải thực hiện các bước sau: Trong mục tiêu thử nghiệm của bạn, hãy chuyển tới Cài đặt xây dựng. Đặt "Luôn tìm kiếm đường dẫn người dùng" thành YES

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