Подтвердить что ты не робот

'NSInternalInconsistencyException при запуске UITesting с Xcode 7

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

Теперь я чувствую, что я что-то пропустил.

До сих пор мой прогресс

  1. Включено опцию "UI testing" при создании нового проекта. Это, фактически, добавляет мне цель. Поэтому я должен хорошо поехать - или так я думал. enter image description here
  2. Быстрый файл под тестом UI уже импортировал XCTest и был подклассом "XCTestCase".
  3. setup() запускает приложение XCUIApplication(). launch()
  4. И я добавил следующее (нажав кнопку "Запись") enter image description here

И затем, я провела этот тест.

Все это происходит даже до того, как вызывается тест, сразу после запуска приложения в setup() со следующим

*** Ошибка утверждения в - [XCUIApplication init],/Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Тестирование /XCUIApplication.m: 76/Пользователи/Имя пользователя/Документы/Проекты/Тестирование /UiTesting/UITestingApp/UITestingApp.swift: 0: ошибка: - [UITestingApp.UITestingApp testSimpleTap]: сбой: обнаружено "NSInternalInconsistencyException", "Целевой путь приложения не указан через тестовую конфигурацию:
testBundleURL: Файл:///Users/UserName/Library/Developer/CoreSimulator/Devices/E3201DC2-CAD3-48C3-95F5-15E18DCA1836/данные/Контейнеры/Bundle/Application/8B33FC59-FC03-41F8-BD21-43D81BA2D355/UITestingApp-Runner.app/Plugins/UITestingApp.xctest/
productModuleName: (нуль) testsToSkip: (нуль) testsToRun: (нуль) reportResultsToIDE: нет sessionIdentifier: <__ NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket: (нуль) disablePerformanceMetrics: нет treatMissingBaselinesAsFailures: нет baselineFileURL: (нуль) targetApplicationPath: (null) targetApplicationBundleID: (null) reportActivities: no

Кто-нибудь сталкивается с этим или имеет какие-либо предложения о том, что я могу потерять?

Примечание. Я установил целевое приложение цели тестирования пользовательского интерфейса для своего приложения.

Обновление: я заметил, что это применимо ко всем бета-версиям Xcode - обновленного заголовка соответственно

4b9b3361

Ответ 1

После бесконечной настройки, изменил местоположение полученных данных в "Предпочтениях Xcode" от "Наследие" до "Пользовательский" и заставил его работать!

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

Ответ 2

У меня была аналогичная проблема, и моя ошибка заключалась в том, чтобы использовать код тестирования UI в регулярной тестовой цели. Как только я сделал новую цель, начиная с "iOS UI Testing Bundle" и скопировал код там, ошибка исчезла. Здесь поток, который указал мне в правильном направлении: https://twitter.com/punksomething/status/609505357132500993 "Да, я пытался использовать тест пользовательского интерфейса в регулярной тестовой цели. Пришлось создать недавно добавленную цель тестирования пользовательского интерфейса"

Ответ 3

Это случилось со мной, когда я пытался добавить новый класс к моей цели unit test, но я выбрал шаблон класса тестового примера UI вместо unit test Case Class template.

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

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

Ответ 4

Я получил это после переименования моей цели. Решение состояло в том, чтобы установить "Target Application" в "None" в моей целевой программе UITest и нажать "Создать". После этого я установил "Нет" обратно в приложение и исправлена ​​ошибка. Я думаю, что очень возможно, что переименование перепутало настройки целевого приложения "Target Application".

Ответ 5

Я получаю утверждение

*** Ошибка утверждения в - [XCUIApplication init],/Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Тестирование /XCUIApplication.m: 76

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

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

Ответ 6

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

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

Ответ 7

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

Я решил удалить приложение XCUI, которое создается при каждом запуске тестов и перезагрузке моего устройства, и это сработало. однако, если я запускаю тесты через 7 или 8 раз, ошибка возвращается, и я просто повторяю цикл решения. Если вы просто удалите приложение и не перезапустите его, это не сработает.

Не уверен, что этот ответ будет работать для всех, но это то, что сработало для меня.

Ответ 8

Он работал у меня после того, как я комментирую приведенный ниже код в методе setup() моего TestCaseClass

continueAfterFailure = false и XCUIApplication(). Запуск()

Ответ 9

У меня была проблема с тестированием огурца на xCode 8.

Я исправил переход к проекту (в навигаторе проекта) > MyTestTarget > Общие

Здесь убедитесь, что целевое приложение настроено на приложение, с которым вы хотите выполнить тесты. По умолчанию для него установлено значение None.

Ответ 10

Удаление существующей цели и создание снова устраняет проблему.

Убедитесь, что вы выбрали правильный тестовый комплект. Для тестирования пользовательского интерфейса это должен быть " iOS UI Testing Bundle ".

Ответ 11

  • Новый тестовый пример пользовательского интерфейса для создания файлов и Unit Test Шаблоны приложений не сильно отличаются (предыдущие две строки кода), выберите Unit Test в тесте, предложит "Приложение не работает", добавив "XCUIApplication().launch()" может решить проблему.
  • Когда тест попросил не находить элемент управления (например, UITextField), установите имя управления \identity → accessibility → Label\в то же имя, что и элемент управления, используемый в UITestClass.
  • Вы не добавили тестовый класс к соответствующим целевым параметрам пользовательского интерфейса.