Я использую UIAutomation для тестирования приложения, и я хотел бы узнать о моем охвате кода. Но поскольку javascript не имеет препроцессора, это означает, что gcov и подобные не являются опцией. Кто-нибудь придумал решение для этого?Есть ли способ проверить охват кода тестов UIAutomation?
ответ
Для Xcode версии 4.5 и новее:
- Установите для параметра «Создать тестовые покрытия» значение «Да».
- Установите для параметра «Поток инструментальной программы» значение «Да».
Это будет генерировать файлы покрытия кода при каждом запуске приложения в симуляторе и выходе из приложения. Подробное объяснение этих двух шагов можно найти в начале http://qualitycoding.org/xcode-code-coverage/.
Для любых модульных тестов файлы покрытия кода будут генерироваться каждый раз, когда вы нажимаете кнопку тестирования, и тесты завершаются. Для UIAutomation это немного сложнее. Вы должны обеспечить, чтобы приложение выходило по завершении ваших тестов. Самый простой способ сделать это - отключить многозадачность. Добавьте UIApplicationExitsOnSuspend в файл MyAppName-Info.plist и установите для этого параметра значение «YES». Запустите тест автоматизации пользовательского интерфейса, и в конце его вы можете выйти из приложения, либо вручную нажав кнопку «домой» в симуляторе, либо с помощью метода UIATarget.localTarget(). DeactivateAppForDuration().
Примечание: если ваше приложение имеет какие-либо тесты автоматизации пользовательского интерфейса, которые полагаются на метод deactivateAppForDuration(), тесты завершатся при запуске команды.
Покрытие кода используется только для модульного тестирования, нет покрытия кода для UIAutomation, потому что нет никакого способа узнать, сколько элементов на экране было «прикоснулся» по UIAutoamtion
Покрытие кода сообщает вам процент строк в приложении, которые были выполнены во время ваших тестов. Вы можете выполнить тест автоматизации ui и контролировать это, как и для единичного теста – ekcrisp