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

Тестовый объект X обнаружил ошибку (ранний неожиданный выход, операция никогда не завершалась самонастраиванием).

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

Когда я впервые выполнил свой тестовый пример, он дал мне эту ошибку. Я обыскал его и попытался выполнить некоторые из таких решений, как "создание новой цели", "перезапуск Xcode", но это не помогло мне. Любая идея?

4b9b3361

Ответ 1

У меня есть мои заметки и демонстрационные приложения для Cocoapods и Carthage здесь https://github.com/onmyway133/TestTarget

  • Убедитесь, что все фреймворки связаны с целевыми объектами тестирования.
  • Настройте Runpath Search Paths, чтобы указать на $(FRAMEWORK_SEARCH_PATHS)

Дополнительная информация

Ответ 2

Я использую carthage, и проблема для меня заключалась в поиске зависимостей в тестовой цели. Fix:

Добавить $(PROJECT_DIR)/Carthage/Build/iOS в Runpath Search Paths

Вы можете найти ссылку здесь: Вопрос о Карфагене

Ответ 3

Может быть другое решение, если вы используете CocoaPods и цель теста пользовательского интерфейса встроена в цель приложения, что, к сожалению, имеет место в шаблоне по умолчанию (pod init).

Попробуйте переместить цель теста пользовательского интерфейса из цели приложения следующим образом:

от:

platform :ios, '11.0'
use_frameworks!

target 'MyApp' do
  # Pods for MyApp

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing

  end
end

чтобы:

platform :ios, '11.0'
use_frameworks!

# Pods shared between MyApp and MyAppUITests    

target 'MyApp' do
    # Pods for MyApp only

end

target 'MyAppUITests' do
    # Pods for testing

end

Кредит поступает на SpacyRicochet в этой ветке выпуска: https://github.com/CocoaPods/CocoaPods/issues/4752#issuecomment-305101269

Ответ 4

В моем случае не было ничего плохого в связанных файлах. Симулятор как бы застрял в сообщении о запуске приложения, например: "Имя приложения отправит вам уведомления". Нажмите OK и в следующий раз, когда мои XCTests отлично работают.

Ответ 5

Мое решение состояло в том, чтобы добавить фазу "Копировать файл" в мою тестовую цель. Там я установил назначение в Frameworks и добавил свою фреймворк с знаком +.

Ответ 6

Просто чтобы поделиться своим опытом об этой ошибке:

Я использую fastlane + cocoapods.

У меня есть рабочее пространство с двумя динамическими фреймами:

  • A.framework
  • B.framework

Зависимости:

  • A зависит от AFNetworking с использованием cocoapods
  • B зависит от A

Зависимость определяется в подфайле.

Ошибка была вызвана выполнением тестов B.

В моем случае проблема была связана с отсутствующей зависимостью от AFNetworking в цели B.framework.

Добавление зависимости pod к AFNetworking в B.framework в Podfile, все было разрешено.

Таким образом, даже если цель B успешно компилируется, AFNetworking не была встроена в тестовое приложение B, и симулятор не смог запустить приложение B test, увеличив этот "очень значимый" (*) ошибка.

(*) благодаря Apple для этого!

Ответ 7

В моем случае Build Active Architecture Only была установлена ​​только YES.

В проекте и целях: Настройки сборки → Архитектуры → Создать активную архитектуру Только должно быть НЕТ, а не ДА

Ответ 8

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

Решение

ОЧИСТИТЬ ПРОИЗВОДНЫЕ ДАННЫЕ

Окно => Проекты => Удалить (в вашем проекте)

Удачи и счастливого тестирования!

Ответ 9

Ничего себе, я потратил много времени на это, в моем тестовом комплекте было добавлено "Host Application" для моего приложения. Других тестовых комплектов не было.

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

В тестовом комплекте Перейти к разделу Общие → Тестирование → Установить "Хост-приложение" на "Нет".

Ответ 10

В моем случае я не добавил фазу Run Script для библиотек Quick и Nimble, которые я интегрировал с использованием Carthage.

Ответ 11

У меня была та же проблема, и я уже попробовал все предложенное здесь, но безуспешно.

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

Ответ 12

I tried many different options but none helped me except below and wasted lot of time, posting this so that really help and save time on this: 

Follow all of the instructions for Full Manual Configuration

https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md#full-manual-configuration
Tips
When you come to the part where you are executing xcodebuild, if the build fails, and the log mentions "RoutingHTTPServer" or "YYCache", add these two frameworks on the Build Phases tab of the WebDriverAgentRunner target
Open the WebDriverAgent.xcodeproj

Select 'Targets' -> 'WebDriverAgentRunner'

Open 'Build Phases' -> 'Copy frameworks'

Click '+' -> add RoutingHTTPServer

Click '+' -> add YYCache
https://github.com/facebook/WebDriverAgent/issues/902#issuecomment-382344697
https://github.com/facebook/WebDriverAgent/issues/902#issuecomment-383362376

The build/test may also fail due to the WebDriverAgentRunner app/developer being untrusted on the device. Please trust the app and try again.

While trying to access the WebDriverAgent server status, if it tries to connect on port 0, hardcode port 8100 in appium-xcuitest-driver/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m

Original line: server.port = (UInt16)port;
New line: server.port = 8100;
https://github.com/facebook/WebDriverAgent/issues/661#issuecomment-338900334

Ответ 13

Во время создания Cocoa Touch Framework каждая попытка запустить тестирование заканчивалась тем же сообщением об ошибке, что и OP.

Я исправил это, изменив конфигурацию сборки TEST с Debug на Release.

Шаг 1

enter image description here

Шаг 2

enter image description here

Шаг 3

enter image description here

Примечание. Runpath Search Paths дополнительной настройки Runpath Search Paths.

Я использую Cocoapods в версии 1.6.1 и Xcode 10.1

Ответ 14

Хотел бы поделиться своим ответом, надеясь, что это может сэкономить время.

Для меня файл .m не был правильно связан в разделе "Фазы сборки" → "Скомпилировать источники"

Ответ 15

В моем случае я объявил свойство как readonly в файле заголовка:

// In .h file
@property (nonatomic, readonly) NSUInteger count;

но я забыл добавить это объявление в .m, чтобы сгенерировался сеттер:

// In .m file
@property (nonatomic, assign) NSUInteger count;

Глупая ошибка, не совсем уверенная, почему она проявилась в этой ошибке, но добавив, что линия к .m исправила проблему.

Ответ 16

В моем случае мои настройки сборки → Архитекторы устанавливали только для armv7, и я изменил для ARCHS_STANDARD то же самое с моим Host Application

Ответ 17

Для меня мне пришлось "доверять" разработчику в "Управление устройствами" в разделе "Настройки → Общие" на моем устройстве. (Настройки → Общие → Управление устройствами → DeveloperID → "Доверьтесь приложению" ). Когда я запускал приложение через боковую загрузку, используя мой идентификатор apple.

Ответ 18

В моем случае мне пришлось удалить $(inherited) от других флагов линкера в моей цели тестирования пользовательского интерфейса. Я установил статические библиотеки через cocoapods.

Ответ 19

для меня проблема заключалась в файле Pod
Я сделал новую цель, но забыл добавить цель в файл pod

target 'mobilesdkIntegrationTests' do
  // write here any predefined pods if any, like
  testing_pods
end

просто добавьте цель в файл pod исправили проблему

Ответ 20

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

Ответ 21

Переключение с Xcode 9.4.1 на Xcode 10.1 решило проблему в моем случае.

Ответ 22

В моем случае у меня был полностью чистый проект с пустыми тестами по умолчанию. Если я добавил какой-либо модуль, я получил эту ошибку. Решение состояло в том, что хотя бы один файл в Test target должен импортировать Foundation

import XCTest
import Foundation

@testable import CVZebra

class CVZebraTests: XCTestCase {

    override func setUp() {
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }

    func testExample() {
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measure {
            // Put the code you want to measure the time of here.
        }
    }

}

Ответ 23

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

Ответ 24

В моем случае была проблема с моим приложением в симуляторе. До того, как возникла проблема, я обработал db-миграцию (область), которая потерпела неудачу и уничтожила мою базу данных. После того, как я удалил приложение на симуляторе, у меня все заработало нормально.