Не удается импортировать основные быстрые классы в тестовую цель?

Я пытаюсь проверить классы в моем приложении iOS. Я пытаюсь импортировать целевое Pickle в мое приложение, которое имеет все мои классы в моей целевой тесте тестирования PickleTests, добавив import Pickle в начало тестового файла PickleTests.swift, но я продолжаю получать ошибку.

Ошибка, которую я получаю: "Не удалось импортировать заголовок моста (путь к заголовку моста)" (путь к заголовку моста отображается в ошибке, а не в круглых скобках).

Я попытался установить "Определяет модуль" в моих настройках сборки для Pickle target к "Да", но он все еще не работает. Я также проверил в настройках сборки, что у него есть правильный путь к мостовому файлу заголовка.

Любые идеи относительно того, как я могу настроить тестирование? Я нахожусь на Xcode 6.3.2. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Откройте изображение на новой вкладке, чтобы увидеть его больше.

Ответы

Ответ 1

Большое спасибо @matt за помощь мне в этом!

Щелкните правой кнопкой мыши по изображениям и откройте их на новой вкладке, чтобы увидеть их больше.

Как обсуждалось в https://github.com/CocoaPods/CocoaPods/issues/2695, проблема, похоже, лежала в том, что Cocoapods является частью проекта. Ответ в нижней части ссылки, которая решает проблему, включает в себя щелчок на настройках вашего приложения и последующий щелчок на вашем проекте Info (а не на любых настройках ваших целей). Там вы увидите настройки Configurations: enter image description here

Вы также заметите, что в настройках конфигурации есть две цели, и ваши настройки конфигурации целевого объекта тестирования будут установлены равными нулю, пока ваша основная цель будет связана с Cocoapods. Исправление заключается в изменении значения None рядом с целевой тестом на то же, что и у Основной цели: enter image description here

Итак, теперь они оба связаны с Cocoapods. Убедившись, что ваша основная цель имеет Defines module, установленную в Yes в своем Build Settings, создайте свой проект, и ошибка в файлах тестирования должна исчезнуть.

Кроме того, после того, как я сделал это исправление, я столкнулся с другой ошибкой, когда компоновщик выдавал ошибку, жалуясь на отсутствие библиотеки в моей целевой тестовой программе. Эта недостающая библиотека была другой зависимостью, которая была у меня в моем проекте, и я решил эту ошибку, убедившись, что все мои зависимости, которые были связаны в моей главной цели Link Binary with Libraries в настройках Build Phases, были скопированы в Testing Target Link Binary with Libraries в настройках Build Phases.

Ответ 2

Вам не обязательно это делать. Вы можете использовать link_with в вашем подфайле. В вашем случае вы бы сделали.

link_with 'Pickle', 'PickleTests'

И затем pod update