2013-02-21 1 views
1

Я использую UIAutomation для тестирования приложения, и я хотел бы узнать о моем охвате кода. Но поскольку javascript не имеет препроцессора, это означает, что gcov и подобные не являются опцией. Кто-нибудь придумал решение для этого?Есть ли способ проверить охват кода тестов UIAutomation?

ответ

7

Для Xcode версии 4.5 и новее:

  1. Установите для параметра «Создать тестовые покрытия» значение «Да».
  2. Установите для параметра «Поток инструментальной программы» значение «Да».

Это будет генерировать файлы покрытия кода при каждом запуске приложения в симуляторе и выходе из приложения. Подробное объяснение этих двух шагов можно найти в начале http://qualitycoding.org/xcode-code-coverage/.

Для любых модульных тестов файлы покрытия кода будут генерироваться каждый раз, когда вы нажимаете кнопку тестирования, и тесты завершаются. Для UIAutomation это немного сложнее. Вы должны обеспечить, чтобы приложение выходило по завершении ваших тестов. Самый простой способ сделать это - отключить многозадачность. Добавьте UIApplicationExitsOnSuspend в файл MyAppName-Info.plist и установите для этого параметра значение «YES». Запустите тест автоматизации пользовательского интерфейса, и в конце его вы можете выйти из приложения, либо вручную нажав кнопку «домой» в симуляторе, либо с помощью метода UIATarget.localTarget(). DeactivateAppForDuration().

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

-3

Покрытие кода используется только для модульного тестирования, нет покрытия кода для UIAutomation, потому что нет никакого способа узнать, сколько элементов на экране было «прикоснулся» по UIAutoamtion

+0

Покрытие кода сообщает вам процент строк в приложении, которые были выполнены во время ваших тестов. Вы можете выполнить тест автоматизации ui и контролировать это, как и для единичного теста – ekcrisp