Вы должны использовать новую цель тестирования пользовательского интерфейса для добавления/выполнения ваших тестов ui для чистой сборки и обслуживания. Однако, предполагая, что вы пытаетесь вызвать XCUI * API в своих модульных тестовых классах и активировать запись пользовательского интерфейса с целевой тестовой единицей, Я вижу несколько проблем, появляющийся там,
- Если вы используете swift2 для модульного тестирования и в том числе ваших основных приложений модулей с помощью
@testable import {module}
, когда вы звоните XCUI * menthods от этого TestCase, быстро выдаст ошибку
Modul e {module} не был скомпилирован для тестирования
Поскольку тест пользовательского интерфейса выполняется как отдельный процесс, он не может загружать зависимости приложения.
- Поскольку XCUI * api зависит от библиотек Obj-C, использование методов тестирования пользовательского интерфейса предполагает, что вы укажете файл заголовка Objective-C Bridging Header в целевой тестовой единице. Это не будет ошибкой, но оно загрязняет вашу цель.
- Я также подтвердил, что вам нужно добавить файл тестового файла в цель тестирования пользовательского интерфейса, чтобы включить кнопку записи теста пользовательского интерфейса.
Существуют и другие преимущества запуска тестов пользовательского интерфейса в качестве отдельной цели, например, гибкость указания цели только для запуска модульного теста или теста пользовательского интерфейса из инструментов командной строки и простоты поддержания чистого состояния для выполнения тестов пользовательского интерфейса.