Xcode 7 UI тесты, кнопка записи серым цветом
Я пытаюсь добавить UI-тесты в мой существующий проект с помощью Xcode 7. Однако кнопка записи теста пользовательского интерфейса всегда выделена серым цветом. Чего мне здесь не хватает?
Я попытался перезапустить Xcode, очистить и перестроить проект и добавить новую тестовую цель UI. Кто-нибудь еще испытывает такое же поведение?
15 ответов
FWIW: у меня была эта проблема, и оказалось, что я пытался запустить симулятор в неправильной ОС.
Я пытался использовать iOS8.x, и UITesting работает только в iOS9+.
переключите версию симулятора, и появится кнопка записи.
Я тоже застрял на этом некоторое время. Чтобы записать, вы должны быть в классе, который 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, обычная тестовая цель не сделала этого для меня.
Я сделал несколько вещей, чтобы включить кнопку записи:
- (необязательно, рекомендуется) - удалите все тестовые схемы и тестовые цели для вашего проекта, начните заново, создав новую цель UITest.
- убедитесь, что ваша схема UITest и основная схема запуска проекта указывают на одну и ту же цель.
- Попробуйте удалить другие схемы UITest, если они могут быть легко воссозданы/не имеют абсолютного значения.
- продукт > (нажмите и удерживайте клавишу ALT) > очистить Построить Папку
- продукт > чистый (только для безопасной меры)
- закрыть проект, выйти из Xcode.
- выйти из симулятора.
- наконец, откройте 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 распознал метод, является ромб, появляющийся слева от имени метода:
Как бы глупо это ни звучало,мне пришлось выбрать другой файл С боковой панели слева и вернитесь к моему файлу с тестовыми случаями. После этого кнопка стала активной.
он сразу же вернулся, когда я переключился на правильную схему. Убедитесь, что вы находитесь на UI testing
схема как тестовый рекордер UI не может работать ни на одном другом.
вы должны импортировать класс представления, который вы хотите протестировать. Затем поместите курсор в метод теста.