it-swarm.com.ru

NSInternalInconsistencyException при выполнении UITesting с Xcode 7

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

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

Вот мой прогресс до сих пор

  1. Включена опция «Тестирование пользовательского интерфейса» при создании нового проекта. Это на самом деле добавляет цель для меня. Так что мне надо идти - или я так думал. enter image description here
  2. Файл Swift в UI Testing уже импортирован «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 Testing/XCUIApplication.m: 76 /Users/UserName/Documents/Projects/Testing/UiTesting/UITestingApp/UITestingApp.Swift:0: error: - [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: нет Идентификатор сеанса: <__NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket: (нуль) disablePerformanceMetrics: нет treatMissingBaselinesAsFailures: нет baselineFileURL: (нуль) targetApplicationPath: (нуль) targetApplicationBundleID: (нуль) reportActivities: нет

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

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

Обновление: я заметил, что это применимо ко всем бета/финальным выпускам XCode - обновил название соответственно 

31
SuPotter

После бесконечной настройки изменили расположение производных данных в «Предпочтениях XCode» с «Legacy» на «Custom» и заставили его работать! 

 enter image description here

2
SuPotter

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

36
Matt Bearson

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

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

 enter image description here

17
Viktor Kucera

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

4
TibiUr

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

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

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

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

4
Samuël

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

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

3
Bill Burgess

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

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

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

2
Bori Oludemi

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

continueAfterFailure = false & XCUIApplication (). launch ()

1
Ranganatha G V

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

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

1
arango_86

У меня была эта проблема при запуске тестов Cucumberish на xCode 8.

Я исправил, перейдя в Project (в навигаторе проекта)> MyTestTarget> General

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

0
Dev2rights