Не удалось определить идентификатор пакета для тестового хоста xxxTest


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

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

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

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

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

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

  1. Diabling тесты за исключением приложение UITest
  2. выполните тесты один раз
  3. включить все тесты
  4. запуск тестов

Вопрос:

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

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

Xcode 8 Beta-Convert to Current Swift Syntax Failed: не удалось найти тестовый хост

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

2 8

2 ответа:

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

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

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

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

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

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

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

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

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

В моем случае этот 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

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