- PVSM.RU - https://www.pvsm.ru -
Привет! Представляю вашему вниманию перевод статьи «WWDC19: Getting Started with Test Plan for XCTest» [1] автора Shashikant Jagtap.
На прошедшей конференции WWDC [2] компания Apple показала новые классные фичи для разработчиков. В Xcode 11 так же добавлено несколько потрясающих фич. О них можно почитать в release notes [3]. Один из наиболее значимых инструментов, анонсированных в этом году, — Test Plan для XCTest и Xcode UI тестов. В этой статье мы детально рассмотрим, как функционал Test Plan будет работать с XCTest. Если вы хотите узнать больше подробностей, посмотрите видео сессии “Testing on Xcode” [4]
До Xcode 11 тестовая конфигурация была частью Xcode схем. Если разработчики хотели сконфигурировать разные наборы тестов для разных условий, они или создавали новую схему, или редактировали существующую под определенные тестовые нужды. Тестовая конфигурация была тесно связана с Xcode схемами, поэтому приходилось создавать множество схем для для разных задач при тестировании.
Новая функциональность в Xcode 11 позволяет разработчикам и QA инженерам конфигурировать тесты согласно своим потребностям. Test Plan позволяет определить:
С Xcode Test Plan вы можете конфигурировать тест-сьюты независимо от Xcode схем. Это значительное улучшение в технологиях тестирования, которое может вывести ваши тесты на новый уровень. Теперь давайте посмотрим на Xcode Test plan в действии.
Предположим, что мы создаем тест-план для функциональных тестов со следующими требованиями:
Мы создадим этот тест-план для Xcode для различных платформ Apple.
Xcode 11 позволяет нам определять эти требования в Test Plan. Xcode позволяет создавать Test Plan из текущей конфигурации схемы. Когда вы редактируете схему и переходите к текущим тестовым действиям, Xcode отображает опцию для создания Test Plan. Вы можете создать Test Plan со следующими настройками:
Для ознакомления создадим Test Plan из конфигурации схемы.
Нужно назвать Test Plan и указать правильный тестовый таргет. Когда Test Plan создан, он прикреплен к схеме. Однако схема может переопределить любой Test Plan, созданный после, с помощью флага при вызове команды Xcodebuild. После создания Test Plan, вы можете прикрепить его к определенному таргету. Давайте добавим текущий план к таргету с UI тестами и присвоим ему имя.
Вы обнаружите новый файл с расширением functional.xctestplan. Это и есть ваш Test Plan. Его можно редактировать при необходимости. Можно сделать составной Test Plan в том же таргете в зависимости от потребностей тестов. В этом месте у нас есть доступный Test Plan для нашего таргета с UI тестами.
Файл Test Plan — простой json-подобный конфигурационный файл, который содержит информацию о том, как конфигурировать ваши тесты для запуска независимо от любой схемы. Здесь находятся различные настройки для конфигурации тестов, доступные в Test Plan. Базовый Test Plan содержит три ключевых элемента:
Каждая конфигурация в Test Plan содержит набор тестов, привязанных к нему с различными настройками. В соответствии с требованиями к нашему тест-плану нам понадобятся две конфигурации: одна для смоук-тестов, другая — для регрессионных тестов.
Теперь давайте откроем файл functional.xctestplan в Xcode и переименуем configuration1 в smoke-uk, а затем кликнем на кнопку “+” вверху плана и добавим другую конфигурацию regression-usa.
Теперь у нас есть две конфигурации в Test Plan и Test Plan уже привязан к таргету с UI-тестами. Добавим некоторые настройки к каждой конфигурации. Когда smoke-uk конфигурация выбрана, мы можем изменить локацию на Лондон и внести другие изменения в настройках. Подобным образом изменим конфигурацию regression-usa. Вот так будет выглядеть Test Plan для запуска регресса:
Настройки доступные в Test Plan:
Если вы не хотите создавать Test Plan, используя Xcode схему, то вы всегда можете создать новый Test Plan через Xcode → Product → Test Plan.
Cоздав Test Plan таким образом, прикрепим его к некоторому тестовому таргету путём добавления тестов к нему. В примере ниже мы создали новый Test Plan и добавили в него тесты.
Как было упомянуто ранее, Xcode Test Plan — это всего лишь конфигурационный файл, где мы установили все определенные нами конфигурации. В нашем сценарии мы создали functional.xctestplan, и исходный код для него выглядит примерно так:
{
"configurations" : [
{
"name" : "smoke-uk",
"options" : {
"language" : "en-GB",
"locationScenario" : {
"identifier" : "London, England",
"referenceType" : "built-in"
},
"region" : "GB",
"testExecutionOrdering" : "lexical"
}
},
{
"name" : "Regression-usa",
"options" : {
"addressSanitizer" : {
"enabled" : true
},
"language" : "en",
"locationScenario" : {
"identifier" : "San Francisco, CA, USA",
"referenceType" : "built-in"
},
"region" : "US",
"testExecutionOrdering" : "random"
}
}
],
"defaultOptions" : {
"codeCoverage" : false
},
"testTargets" : [
{
"target" : {
"containerPath" : "container:XCTestPlan.xcodeproj",
"identifier" : "9B0E393A22A6EB5400F666A1",
"name" : "XCTestPlanUITests"
}
}
],
"version" : 1
}
Вы можете создать конфигурацию таким образом и сохранить ее в файл с расширением .xctestplan в Xcode 11.
Теперь мы понимаем процесс создания файла Test Plan в Xcode. Давайте посмотрим, как запускать Test Plan и получать отчеты в Xcode. Вы можете запускать тесты через Xcode → Product → Test как обычно, запуская прикрепленные Test Plans к схеме. В нашем случае это запустит обе тестовые конфигурации — смоук и регресс.
Есть несколько опций командной строки в Xcodebuild для просмотра и запуска Test Plans. Можно выполнить следующую команду:
$ Xcodebuild -showTestPlans -scheme YOUR_SCEME
Она выведет все Test Plans для текущей схемы. Вы также можете запустить отдельный тест:
$ Xcodebuild -project XCTestPlan.Xcodeproj/ -scheme XCTestPlan -destination 'platform=iOS Simulator,OS=13.0,name=iPhone XR' test -testPlan functional
Этот скрипт запустит тест, используя конфигурацию Test Plan.
После выполнения тестов для определенного Test Plan, вы можете посмотреть хорошие отчеты, сгенерированные в Xcode. Отчеты генерируются отдельно для каждой конфигурации.
В Xcode, в разделе test navigator, вы можете фильтровать отчеты по Test Plans. Отчеты по Xcode Test Plan могут быть сконфигурированы на Xcode сервере.
Исходный код демо доступен на Github: XCTestPlan [5]
Вкратце о том, где может быть использован Xcode Test Plan и как он изменяется в зависимости от конфигурации схемы. Вот несколько примеров использования Xcode Test Plan:
Также возможно множество других сценариев, где Xcode Test Plans может помочь расширить процесс тестирования.
С Xcode Test Plan, XCTest может быть выведен на новый уровень по возможностям управления конфигурацией и запуском ваших тестов. Xcode Test Plans позволяет лучше контролировать платформу тестирования на базе Apple.
Автор: Neifmetus
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/perevod/321582
Ссылки в тексте:
[1] «WWDC19: Getting Started with Test Plan for XCTest»: https://shashikantjagtap.net/wwdc19-getting-started-with-test-plan-for-xctest/
[2] WWDC: https://developer.apple.com/wwdc19/
[3] release notes: https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes
[4] “Testing on Xcode”: https://developer.apple.com/videos/play/wwdc2019/413/
[5] XCTestPlan: https://github.com/Shashikant86/XCTestPlan
[6] Источник: https://habr.com/ru/post/457108/?utm_campaign=457108&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.