Не удалось определить идентификатор пакета для xxxTest TEST_HOST.

У нас есть проблемы с тем, чтобы наш CI работал с Xcode. Мы сталкиваемся с проблемой Could not determine bundle identifier for xxxTest TEST_HOST: some path that does not exist.

Что мы сделали до сих пор:

  • На машине CI мы можем запускать все тесты на устройстве, но если мы запустим его с фиксацией, CI завершится этой ошибкой.
  • У нас была эта проблема и на других машинах, когда мы пытались запустить тесты приложения. Мы исправили это, очистив машину и перезагрузив устройства. (Пришлось исправить некоторые настройки схемы). Мы не можем запустить все тесты, но иногда сталкиваемся с проблемой без какой-либо причины.
  • Мы также перепроверили схемы. Хост-приложение устанавливается в каждой схеме тестов как само приложение.

Наш проект преследует следующие цели:

  • Приложение
  • Модульные тесты приложений
  • Тесты пользовательского интерфейса приложения
  • Внешний вид (модуль)
  • Модульные тесты AppearanceKit
  • Модели (Модуль)
  • Модульный тест моделей

Найдено решение:

  1. Набор тестов, кроме App UITest
  2. Запустите тесты один раз
  3. Включить все тесты
  4. Запустите тесты

Вопрос:

  • Что там происходит? Как мы можем предотвратить возникновение этой проблемы снова и снова?

Известные вопросы:

Xcode 8 Beta - Не удалось преобразовать в текущий синтаксис Swift: не удалось найти тестовый хост

Тесты перестают работать из-за ошибки xcode 8 TEST_HOST


person BennX    schedule 04.10.2016    source источник
comment
Вы нашли решение этой проблемы?   -  person Giuseppe Lanza    schedule 01.02.2017
comment
Еще нет. Похоже, что приложение не компилируется перед попыткой запустить тест. Поэтому он не может найти файл ipa   -  person BennX    schedule 01.02.2017
comment
@BennX У меня сейчас точно такая же проблема. Компиляция приложения вручную исправляет это, но это, очевидно, не долгосрочное решение. Вам повезло?   -  person Mark Struzinski    schedule 14.02.2017
comment
На самом деле еще нет. Извините, я могу пойти настроить новый проект и посмотреть, смогу ли я работать с новым проектом. Будет плохое время, потому что это огромный проект   -  person BennX    schedule 15.02.2017


Ответы (3)


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

Это как-то странно звучит, но проблема заключалась в конфигурациях сборок командной строки внутри настроек проекта.

введите описание изображения здесь

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

Это устанавливает defaultConfigurationName внутри {projectname}.xcodeproject.

Пожалуйста, прокомментируйте, если у вас есть еще идеи по этому поводу.

person BennX    schedule 10.04.2017
comment
Спасибо, вы спасли мой день - person Jerome Li; 13.09.2017

В моем приложении я нашел решение.

Проблема была, конечно, в тестовой мишени.

Я надеюсь, что это решение будет работать и для вас. Перейдите к настройкам сборки тестовой цели.

Поиск тестового хоста.

В моем случае этот testHost выглядел как

build/{buildConfigurationName}-iphoneos/{schemeName}.app/{appName}

Что неверно, так как фактический путь должен быть

build/{buildConfigurationName}-iphoneos/{schemeName}.app/{schemeName}

поэтому, если у вас есть конфигурация сборки под названием Alpha, в вашем приложении с именем MyApp со схемой под названием MyApp-Alpha путь тестового хоста должен быть

build/Alpha-iphoneos/MyApp-Alpha.app/MyApp-Alpha

это было

build/Alpha-iphoneos/MyApp-Alpha.app/MyApp

Я надеюсь, что это может помочь... к сожалению, эта проблема возникает во многих случаях.

person Giuseppe Lanza    schedule 07.04.2017
comment
В нашем проекте это происходит в подмодулях, которые принимают основной проект в качестве тестового хоста. Я посмотрю, похоже ли это на самом деле, поскольку мы используем конфигурацию хоста Apple по умолчанию. Может быть, это дерьмо - person BennX; 07.04.2017
comment
Похоже, что он вообще не собирает основное приложение, прежде чем пытаться запустить на нем тесты. - person BennX; 07.04.2017
comment
Да. Это было то же самое для меня. Исправление пути для ключа тестового хоста помогло. И подтверждаю, что для корпуса сабмодулей это хрень. - person Giuseppe Lanza; 07.04.2017
comment
В понедельник попробую! Ваше здоровье - person BennX; 07.04.2017
comment
У нас есть набор конфигурации, но он по-прежнему не создает приложение заранее. Если я сначала запускаю один тест пользовательского интерфейса, он создает prodname.app, который является хост-приложением теста. Если я запускаю модульный тест, это приложение не создается. Любая подсказка? - person BennX; 10.04.2017
comment
Я не боюсь. для меня было достаточно исправить путь раздела test host. :/ - person Giuseppe Lanza; 10.04.2017

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

Поэтому, если вы переместили его, верните его на место или путь. если вы удалили ссылку на него, добавьте снова, закройте и снова откройте проект.

person Jacobo Koenig    schedule 17.04.2019