it-swarm.com.ru

Xcode 7 UI Tests, кнопка записи неактивна

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

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

25
rustylepord

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

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

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

11
Le Mot Juiced

Чтобы активировать красную кнопку, вам нужно навести курсор на метод теста:

 enter image description here

29
pableiros

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

import Foundation
import XCTest

class MyTests: XCTestCase {
    func testSomething() {

    }
}

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

15
Maldron

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

Проблема заключалась в индексации XCode, которая заняла некоторое время (около 1 часа), после того, как индексирование было выполнено, кнопка записи становится активной.

12
toxicsun

Была такая же проблема на Xcode 8.3. 

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

   override func tearDown() {
        super.tearDown()

    }

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

5
Tal Zion

Для меня проблема заключалась в том, что была открыта панель «Редактор версий». Как только я вернулся к помощнику редактора, все заработало.

4
Chase Holland

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

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

3
leopic

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

 enter image description here

 enter image description here

2
Rajneesh071

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

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

 enter image description here

1
Manuel

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

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

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

Правка это:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

К этому:

class APPLoadingPageUITests: XCTestCase {
    // tests here
}

А потом вернемся к этому:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

Это исправило это для меня.

1
Gordonium

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

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

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

1
Frogger

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

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

0
blackp

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

0
Wills

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

0
Tamás Sengel