Xcode 7 UI тесты, кнопка записи серым цветом

Я пытаюсь добавить UI-тесты в мой существующий проект с помощью Xcode 7. Однако кнопка записи теста пользовательского интерфейса всегда выделена серым цветом. Чего мне здесь не хватает?

Я попытался перезапустить Xcode, очистить и перестроить проект и добавить новую тестовую цель UI. Кто-нибудь еще испытывает такое же поведение?

15 ответов


FWIW: у меня была эта проблема, и оказалось, что я пытался запустить симулятор в неправильной ОС.

Я пытался использовать iOS8.x, и UITesting работает только в iOS9+.

переключите версию симулятора, и появится кнопка записи.


включить красную кнопку, Вы должны иметь указатель на метод испытаний:

enter image description here


Я тоже застрял на этом некоторое время. Чтобы записать, вы должны быть в классе, который Xcode распознает как содержащий тесты. Добавьте файл в цель тестирования пользовательского интерфейса с помощью чего-то вроде:

import Foundation
import XCTest

class MyTests: XCTestCase {
    func testSomething() {

    }
}

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


У меня была та же проблема, и моя настройка была правильной, iOS >= 9.0, цель была добавлена.

проблема заключалась в индексировании Xcode, которое заняло некоторое время (около 1h), после индексирования кнопка записи становится активной.


для меня проблема заключалась в том, что была открыта панель" редактор версий". Как только я переключился на помощника редактора, это сработало.


имел ту же проблему на Xcode 8.3.

Я удалил tearDown метод

   override func tearDown() {
        super.tearDown()

    }

As не нужно было использовать его. Как только я добавил его обратно, кнопка записи была включена.


Это глупо, но пропустил в некоторых статьях, которые я читал.

убедитесь, что у вас есть цель UITesting, обычная тестовая цель не сделала этого для меня.


Я сделал несколько вещей, чтобы включить кнопку записи:

  1. (необязательно, рекомендуется) - удалите все тестовые схемы и тестовые цели для вашего проекта, начните заново, создав новую цель UITest.
  2. убедитесь, что ваша схема UITest и основная схема запуска проекта указывают на одну и ту же цель.
  3. Попробуйте удалить другие схемы UITest, если они могут быть легко воссозданы/не имеют абсолютного значения.
  4. продукт > (нажмите и удерживайте клавишу ALT) > очистить Построить Папку
  5. продукт > чистый (только для безопасной меры)
  6. закрыть проект, выйти из Xcode.
  7. выйти из симулятора.
  8. наконец, откройте Xcode, загрузите свой проект. Перейдите к вашему файлу UITest, и маленькая красная кнопка радости должна быть доступна для использования.

кроме того, убедитесь, что ваша цель сборки/запуска установлена на iPhone X 9.Х.


Я нашел другое решение,которое я не видел здесь.

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

для моего проекта у меня есть подкасс XCTestCase, назовем его APPMyTestCase. Я часто обнаруживаю, что кнопка записи выделена серым цветом, а иногда маленькие зеленые / красные кнопки рядом с каждым методом тестирования не отображаются возможность запускать их индивидуально. Если я изменю свой подкласс на XCTestCase на секунду все снова работает.

изменить это:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

для этого:

class APPLoadingPageUITests: XCTestCase {
    // tests here
}

а затем вернемся к этому:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

это фиксированная это для меня.


обязательно иметь только один подкласс XCTestCase в файл. Вы хотите, чтобы имена файлов и классов совпадали.

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


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

одним из признаков того, что Xcode распознал метод, является ромб, появляющийся слева от имени метода:

enter image description here


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


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


Проверьте редактор версий и исправьте его

enter image description here

enter image description here


вы должны импортировать класс представления, который вы хотите протестировать. Затем поместите курсор в метод теста.