У меня есть существующий проект iOS с целями приложения и модульного тестирования. Покрытие кода при запуске модульных тестов было нормальным в Xcode 9.2. Но я просто не могу заставить его работать должным образом на Xcode 9.3.
Я вошел в схему для модульных тестов и выбрал «Собрать покрытие кода для ...» в выборе «Тест».
Если я выбираю «все цели» для параметра сбора кода покрытия, он генерирует покрытие для всех целей, кроме основного приложения - для встроенных фреймворков, фреймворков, предоставленных Coocapods, а также для самих тестовых файлов
Если выбрать «несколько целей» и специально выбрать основную цель приложения, то данные о покрытии не будут созданы.
Я не уверен, какая настройка неправильная в моей схеме. Я также пробовал запускать тесты из схемы модульного тестирования, а также из основной целевой схемы (с тестом, запускающим схему модульного теста), но безуспешно. Ищу указатели на то, что может быть не так.





Оказывается, SWIFT_OPTIMIZATION_LEVEL (уровень оптимизации) был изменен для оптимизации скорости [-O] в конфигурации отладки. Я не помню, забыл ли я вернуть его после заполнения различными настройками сборки или что-то пошло не так при миграции проекта. Но вернув его обратно Без оптимизации [-Onone] я решил проблему.