2014-01-10 4 views
3

У меня есть большой (около 700 модулей) проект iOS. Теперь мне нужно сделать модульные тесты для существующего кода (до того, как мы его не использовали). Я добавил новую тестовую цель XCTest для своей цели и начал писать свой первый тест. Но после компиляции у меня есть некоторые ошибки ссылок, потому что модули из моего проекта не были включены для тестирования цели. Включить ли я все свои модули для проверки цели? Или есть более простой способ сделать тестовую цель?XCTest для существующего проекта

+0

Возможный дубликат (https://stackoverflow.com/questions/6865735/adding- unit-tests-to-an-an-existing-project) – TechSeeko

ответ

5

Файлы приложений НЕ ДОЛЖЕН быть включен в цель XCTest.. Только тестовые файлы должны быть включены в список «Источники компиляции» для вашей цели XCTest.

Следуйте инструкциям, Apple, тоже добавить XCTest к вашему проекту: https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/UnitTestYourApp/UnitTestYourApp.html

В целевом приложении, убедитесь, что опция «компилятор символы скрыты по умолчанию» установлен в NO.

Вот блоге скриншоты, если вы застряли: [? Добавление модульных тестов в уже существующий проект] http://hackazach.net/code/2014/02/24/slim-xctest-targets

+0

Красивая, абсолютно красивая. Это избавило меня/мою компанию от многих головных болей, так как мы ранее добавляли каждый исходный файл в тестовый объект. Генезис этой проблемы был, когда я заметил, что некоторые объекты в наших модульных тестах не выполняли базовый тест 'isMemberOfClass:' в 'isEqual:'. Несмотря на то, что два объекта, прошедших проверку на равенство, были созданы из одного и того же исходного файла, они были получены из двух разных скомпилированных источников: один из тестируемого проекта и один из тестового проекта. –

+0

Ссылка не работает. Я предполагаю, что это обновленная ссылка: https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/UnitTestYourApp.html – Dermot

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