2013-03-13 2 views
1

Я пытаюсь принести волшебство Cocoapods в свою компанию, но он попал в крошечную загвоздку. Мы должны иметь возможность модульного тестового кода, который поступает из Cocoapods.Как вы тестируете код кода CocoaPod?

Итак, мой вопрос: кто-нибудь еще столкнулся с этим в своей компании (или кто-то просто достаточно параноик, чтобы заботиться об модульном тестировании этого кода и выяснил, как?). Это не может быть для нас нарушением сделки, но это, безусловно, поможет сгладить ситуацию с менеджментом, если у меня это будет отсортировано раньше времени.

Возможно, мы могли бы вставить тесты в клиентское приложение, но это очень много ручной работы, учитывая, что мы будем использовать стручки для уменьшения ручной работы. Было бы неплохо сделать это как-то.

ответ

3

В моей Podfile я использую что-то вроде этого: link_with ['Sail', 'Sail-Tests']

Это связывает все мои Бобы как с моей обычной мишенью и моей тестовой цели. Затем из моих тестов я могу импортировать и тестировать все, что захочу. Однако это может перекрывать «вставку тестов в клиентское приложение».

1

Если вы хотели бы использовать установку, аналогичную той, которую создает Xcode (где цель тестирования зависит от одного испытуемого), другая альтернатива:

pod 'ObjectiveSugar', '~> 0.5' 

target :test, :exclusive => true do 
    pod 'OCMock', '~> 2.0.1' 
end 

Маркировка цели эксклюзивный указывает, что оно не должны наследовать зависимости родителя. Это предотвращает дублирование символьной ошибки при этой настройке.

0

Я использую Cocoapods для централизации основной функциональности целого набора из более чем 20 приложений, которые являются версией с тем же «базовым». Для этого я настроил структуру из двух проектов Xcode.

Первый содержит основные функции, включая модульные тесты, подтверждающие ожидаемое поведение (Kiwi в моем случае). Спецификации, а также xcodeproj не отображаются в подспецене, но проект тестируется под CI (Jenkins).

Второй проект содержит белое приложение (один проект для каждого приложения), и он имеет зависимость от первой настройки проекта через подфайл. В этом легком приложении также есть спецификации Kiwi, которые проверяют только любой пользовательский код для этого конкретного приложения. Он больше не тестирует основные классы, потому что они уже покрыты. Этот проект также находится в рамках CI.

Итак, основная часть ответа на вопрос состоит в том, что ваша библиотека не просто содержит исходные файлы, необходимые для зависимого проекта, но и компилирующий проект Xcode (приложение или библиотеку), который запускает модульные тесты.

Смежные вопросы