2015-09-28 3 views
1

В существующем приложении и проекте ios, как включить существующий тестовый объект и классы для поддержки тестирования пользовательского интерфейса и кнопки тестирования пользовательского интерфейса?Как включить тестирование пользовательского интерфейса xcode 7 в существующем проекте тестирования ios

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

ответ

3

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

0

Вы должны использовать новую цель тестирования пользовательского интерфейса для добавления/выполнения ваших тестов ui для чистой сборки и обслуживания. Однако, предполагая, что вы пытаетесь вызвать XCUI * API в своих модульных тестовых классах и активировать запись пользовательского интерфейса с целевой тестовой единицей, Я вижу несколько проблем, появляющийся там,

  1. Если вы используете swift2 для модульного тестирования и в том числе ваших основных приложений модулей с помощью @testable import {module}, когда вы звоните XCUI * menthods от этого TestCase, быстро выдаст ошибку

Modul e {module} не был скомпилирован для тестирования

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

  1. Поскольку XCUI * api зависит от библиотек Obj-C, использование методов тестирования пользовательского интерфейса предполагает, что вы укажете файл заголовка Objective-C Bridging Header в целевой тестовой единице. Это не будет ошибкой, но оно загрязняет вашу цель.
  2. Я также подтвердил, что вам нужно добавить файл тестового файла в цель тестирования пользовательского интерфейса, чтобы включить кнопку записи теста пользовательского интерфейса.

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