Я работаю в SWIFT над XCode и по умолчанию он создает тестовый файл, который ссылается на XCTest.
Когда я устанавливаю целевое членство для моего основного проекта, это вызывает эту ошибку
Не удается загрузить базовый модуль для XCTest
Если это целевое членство не установлено, тесты выполняются правильно, и все работает нормально.
PS: я новичок в Свифте, и это, вероятно, глупый вопрос (пожалуйста, просветите меня)
Ответы:
Основной проект не связан с платформой XCUnit. Вам следует создать отдельную цель тестирования для вашего проекта, если она еще не существует, и добавить исходные файлы тестирования в эту цель.
Если вы работаете над шаблоном проекта iOS , выберите
iOS > Test > iOS Unit Testing Bundle
.Если вы работаете над шаблоном проекта OS X , выберите
OS X > Test > OS X Unit Testing Bundle
.источник
Дважды проверьте, что рассматриваемый файл находится не в главной цели, а только в тестовой цели. Только цель теста будет иметь эту структуру для импорта.
источник
Вы только что добавили файл / класс тестов в основную цель, а не в цель теста по ошибке. Просто как тот.
Решение:
1) Удалить тестовый файл из списка «Компилировать источники» на вкладке «Фазы сборки» для основной цели
2) Добавьте тот же файл в «Источники компиляции» на вкладке «Фазы сборки» для цели теста
Это должно решить проблему
источник
Я получаю эту ошибку, если создаю цель динамического фреймворка macOS, которая ссылается на него
XCTest.framework
(цель - это фреймворк, а не цель тестирования!).В этом случае проблема решается путем добавления
к проекту "Build Settings / Framework Search Paths".
источник
$(PLATFORM_DIR)/Developer/Library/Frameworks
в случае, если у вас установлено несколько версий Xcode под разными именами (например, версии выпуска и бета-версии).После множества проблем по поиску и переполнению страниц переполнения стека, таких как эта, мне удалось найти одну деталь, которая не упоминалась на других страницах по устранению неполадок в модульном тестировании iOS.
Если ваш проект использует CocoaPods, убедитесь, что ваша тестовая цель вложена в цель вашего основного приложения. Ваш подфайл может не включать его, если вы создали тестовую цель после запуска
pod init
. Ваш подфайл должен выглядеть примерно так:Не забудьте сохранить свой подфайл и запустить
pod install
после этого.Надеюсь, поможет!
источник
Это может быть немного поздно, но что вам нужно сделать, это:
Нажмите Файл> Создать> Цель> Пакет модульного тестирования iOS.
А затем добавьте свои тесты там. Это сработало для меня. Проблема заключалась в том, что я не выбрал создание модульных тестов при создании проекта. Надеюсь, это кому-нибудь поможет.
источник
Эта проблема встречается два раза в вашем проекте.
1: Ответ:
Перейти к файлу Нажмите на файл.
Затем Вы видите Первый вариант Новый Нажмите на него.
После того, как вы нажмете на него, вы увидите опцию Some Click нажмите на Target.
И тогда в панели поиска поиск IOS модульного тестирования Bundle и добавить проблему решается.
если компилятор не может дать вам разрешение на добавление этого, попробуйте второй метод, если указано ниже.
2. Ответьте на проблему CocoaPod:
Перейти к продукту Нажмите на продукт.
Нажмите на очистить или нажмите cmd + k.
Проблема решена.
источник
Хотя принятый ответ решает эту проблему в большинстве случаев, существует еще один способ, с помощью которого вы можете столкнуться с этой ошибкой.
Если вы уже убедились, что:
Как указано @pwc @ nick-n и другими
ClassTest.swift
Файл для членства в целевой счет того , что он только прикреплен к цели тестирования.ClassTest.swift
Это не видно под вами основные целевые приложения> Источники Строительства> Источники КомпилироватьВот что еще можно проверить:
в вашем
.podspecs
файлеУбедитесь, что вы
source_files
не можете прямо или косвенно включить каталог тестирования.например :
Обратите внимание, что
Classes/**/*.{swift}
включает в себя все, что отменяет тот факт, что каталогMyPodProjTests
должен быть исключен.Решение:
Примечание: это крайне крайний случай и полностью человеческая ошибка, но я подумал, что это стоит отметить.
источник
s.source_files
. Спасибо!Убедитесь, что целевое членство отмечено для всех модулей, когда выбран тестовый каркас. Вы можете просмотреть опцию Целевое членство, выбрав Вид-> Утилиты-> Показать инспектор файла
источник
В моем случае я делал тесты для частного модуля, поэтому в podspec было что-то вроде:
Но в Podfile я забыл привести тестовую спецификацию как таковую:
источник
Я сделал все вышеперечисленное, но все же мне не разрешили получить доступ к методам, которые я хотел проверить. Но прежде, чем я написал какой-либо тестовый пример, собрал проект один раз, и тогда методы были доступны для тестирования. Так что попробуйте и дайте мне знать, если это решило какие-либо проблемы.
источник
У меня была та же проблема, и решение для меня было:
Надеюсь, этот ответ поможет.
PS: последнее, что я думаю в моей цели тестирования в настройках сборки, я должен был проверить эти свойства, которые не были настроены правильно:
источник
Так же, как @Alfishe упомянул выше:
Вы должны удалить тестовые файлы из-
Compiler Sources
подBuild Phases
Как показано ниже
источник
Проверьте целевое членство в вашем тестовом классе.
источник
Проблема в том, что
Unit Testing Bundle
цель должна быть создана заранее[Как добавить это]
источник