2015-04-30 3 views
116

Я работаю в swift на xcode и по умолчанию создает тестовый файл, который ссылается на XCTest.Не удается загрузить базовый модуль для XCTest

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

Если это целевое членство не установлено, тесты работают правильно, и все работает нормально.

PS: Я новичок в быстрой и это, наверное, глупый вопрос (пожалуйста, просветите меня)

+10

Нет сомнений в том, что кузнечик, только тупые вопросы. ;-) Большой вопрос, так как все, кто читает это, будут иметь одинаковую проблему. –

ответ

99

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

  1. Выберите проект в Навигаторе проектов. Это откроет настройки проекта в редакторе.
  2. Нажмите кнопку «+» в нижней части столбца, в котором указаны ваши Цели.
  3. Если вы работаете над шаблоном проекта iOS, выберите iOS > Test > iOS Unit Testing Bundle.

    Если вы работаете над шаблоном проекта OS X, выберите OS X > Test > OS X Unit Testing Bundle.

+2

Между тем для iOS это называется iOS UITesting Bundle (используйте его для тестов пользовательского интерфейса) или iOS Unit Testing Bundle (это для тестов единиц ...) – kuzdu

118

Двойная проверка, что данный файл находится не в главной цели, а вместо этого только для целевой цели. Только таргетинг на тест будет иметь эту структуру для импорта.

+13

Если это помогает. Выберите цель «Не тестировать» -> «Сформировать фазы» -> «Скомпилировать источники». Убедитесь, что ваш «ClassTest.swift» не находится в нормальной задаче сборки. –

+0

И если он находится в главном комплекте и тестовом комплекте, как удалить его из основного пакета. –

+0

Он работает, спасибо! – drewpts

1

Убедитесь, что целевое членство отключено для всех модулей, когда выбран тестовый фрейм. Вы можете просмотреть опцию Target Membership, выбрав View-> Utilities-> Show File Inspector

12

Вы только что добавили файл/класс тестов в основную цель, а не в тестовую цель по ошибке. Просто как тот.

Решение:

1) Удалить тестовый файл из "источников Compile" списка на вкладке "Build Phases" для основной цели

2) Добавить тот же файл в "Источники Compile" на вкладке "Build Phases" для тестовой мишени

Он должен решить вопрос

4

Это может быть немного поздно, но то, что вы должны сделать, это:

Нажмите на Файл> Ne w> Целевая> Комплект тестирования модулей iOS.

И затем добавьте свои тесты там. Это сработало для меня. Проблема заключалась в том, что я не выбирал создание модульных тестов, когда создавал свой проект. Надеюсь, это поможет кому-то.

2

Эта проблема возникает два раза в вашем проекте.

  1. Когда вы не добавляете UnitTestingBundle в свой проект при создании нового проекта.
  2. Когда вы устанавливаете CocoaPods в свой проект когда-то не каждый раз.

1: Ответ:

  • Перейти к файла Нажмите на файл.

  • Затем вы видите первый вариант Новый Нажмите на него.

  • После нажатия на него вы видите какой-либо вариант Нажмите на цель.

  • И затем в поисковой панели Поиск IOS Unit Testing Bundle and Add Problem решается.

  • , если компилятор не может дать вам разрешение на добавление этого, тогда попробуйте второй метод, когда дано ниже.

2. Ответ CocoaPod Проблема:

  • Перейти к продукту Нажмите на продукт.

  • Нажмите на чистый или нажмите cmd + k.

  • Проблема решена.

0

Я все это сделал, но все же мне не разрешалось обращаться к методам, которые я хотел проверить. Но до того, как я написал какой-либо тестовый пример, проект был создан один раз, а затем методы были доступны для тестирования. Поэтому попробуйте и дайте мне знать, разрешила ли она какую-либо проблему.

+0

Это не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав [Ask Question] (https://stackoverflow.com/questions/ask). Вы также можете [добавить щедрость] (https://stackoverflow.com/help/privileges/set-bounties), чтобы привлечь больше внимания к этому вопросу, как только у вас будет достаточно [репутации] (https://stackoverflow.com/help/ Что-репутация). - [Из обзора] (/ review/low-quality-posts/17123204) –

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