2013-02-17 27 views
5

Tôi muốn sử dụng các bài kiểm tra đơn vị OCMock trong ca cao của dự án Cocoa của tôi. Tôi đã tải xuống phiên bản OCMock mới nhất (2.0.1) và sao chép OCMock.framework vào thư mục của dự án của tôi. Trong Xcode, tôi đã thêm khuôn khổ vào liên kết của mục tiêu kiểm tra đơn vị. Sau đó tôi đã thêm một số mã sử dụng các lớp của OCMock.Kiểm tra đơn vị luôn "thành công" sau khi thêm OCMock

Từ đó trở đi, tất cả các bài kiểm tra đơn vị được báo cáo là "thành công" - đèn xanh lục, không có lỗi hoặc cảnh báo. Ngay cả sau khi giới thiệu các cuộc gọi STFail, Xcode tuyên bố "Đã kiểm tra thành công". Đặt một điểm ngắt trong các phương thức thử nghiệm tùy ý cho thấy rằng không có điểm nào trong số chúng được thực hiện.

Sự cố vẫn tiếp diễn nếu tôi nhận xét mã bằng OCMock, bao gồm chỉ thị import.

Sự cố biến mất - tức là, STFails bắt đầu thất bại một lần nữa - khi tôi xóa OCMock khỏi giai đoạn liên kết.

Điều này tương tự như another question Tôi đã hỏi trước đây, nhưng không chính xác giống nhau: Trong trường hợp này, thông tin trong Nhật ký điều hướng không hiển thị lỗi. Điều gì có thể gây ra hành vi này? Tôi có thể làm gì để chẩn đoán vấn đề này?

Trả lời

2

Hóa ra tôi là missing a Copy Files build phase cho khung làm việc, có vẻ như có thể dẫn đến a variety of issues.

này làm việc cho tôi:

  1. Thêm một Copy Files giai đoạn để kiểm tra mục tiêu của đơn vị xây dựng giai đoạn. Tôi đã định vị nó ngay trước giai đoạn Chạy tập lệnh, biến nó thành phiên bản thứ hai.
  2. Kéo mục OCMock.framework từ trình điều hướng dự án lên giai đoạn để thêm nó; thêm nó bằng cách sử dụng nút + không hoạt động trong Xcode 4.6 (có thể do khung là các thư mục?).
  3. Đặt đích đến của giai đoạn thành "Khung".
  4. Trong cài đặt xây dựng của mục tiêu thử nghiệm đơn vị, hãy tìm Đường dẫn tìm kiếm đường chạy và thêm mục nhập @loader_path/../Frameworks.

Bằng cách này, kiểm tra đơn vị thực thi sẽ có thể tìm thấy khung lúc chạy. Lưu ý rằng bạn cũng có thể sử dụng "Danh mục sản phẩm" làm đích đến của giai đoạn Sao chép tệp, trong trường hợp đó bạn có thể bỏ qua bước thứ tư.

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