Невозможно использовать XCTUnwrap в Test Framework - PullRequest
1 голос
/ 06 января 2020

Я пытаюсь создать тестовый фреймворк, который включает в себя некоторые расширения. Я могу import XCTest в рамках, следуя предложениям отсюда: { ссылка }

Однако всякий раз, когда я пытаюсь использовать XCTUnwrap, я получаю сообщение об ошибке: Use of unresolved identifier 'XCTUnwrap'

В принципе, я хочу что-то вроде этого:

import XCTest

extension Optional {
    func unwrap() -> Wrapped {
        do {
            return try XCTUnwrap(self)
        } catch {
            print("Handle error")
        }
    }
}

У кого-нибудь есть идеи?

1 Ответ

3 голосов
/ 07 января 2020

API XCTUnwrap доступен только в основных целевых комплектах тестов, но не в других библиотеках или средах. Существует два способа решения этой проблемы:

  1. Переместите расширение Optional в основной комплект, что явно не то, что вы хотите сделать :)
  2. Измените следующие параметры сборки в целевая структура вашего теста:
SYSTEM_FRAMEWORK_SEARCH_PATHS = (
    "$(inherited)",
    "$(PLATFORM_DIR)/Developer/Library/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
    "$(inherited)",
    "$(PLATFORM_DIR)/Developer/usr/lib",
);
SWIFT_INCLUDE_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib"
...