#xcodebuild #xcuitest #xctestcase
#xcodebuild #xcuitest #xctestcase
Вопрос:
у меня есть приложение, которое может отображать множество всплывающих окон в различных сценариях, и я хотел бы проверить их текст с помощью XCUITest. но хотелось бы иметь возможность делать это без каких-либо усилий для нескольких текстовых конфигураций. например, для нескольких языков.
Есть ли способ передать аргументы через файл .xctestrun или через команду «xcodebuild test-without-building»? какой-нибудь способ передать словарь или файл, который я могу проанализировать в начале XCTestCase
, чтобы узнать правильные текстовые значения для прогнозирования? предпочтительно без необходимости перестраивать проект.
Ответ №1:
Найден ответ. Хост тестирования (и ваши XCTestCase
хосты) могут просматривать свои аргументы так же, как и целевой объект тестирования, используя NSProcessInfo.processInfo.environment
и NSProcessInfo.processInfo.arguments
.
Используя схему «Test» в XCode, вы можете добавлять аргументы и переменные среды, которые может прочитать сам хост тестирования. Хост тестирования может прочитать их, используя информацию о процессе, как указано выше.
Другой способ сделать это — отредактировать файл xctestrun для вашего теста. В нем вы можете добавить ключ CommandLineArguments
в виде массива строк для аргументов process info или добавить EnvironmentVariables
в качестве словаря от ключа к строковому значению. Простой способ добавить аргументы / переменные в файл xctestrun вручную — сначала добавить их в схему тестирования в XCode, просмотреть изменения в файле xctestrun и соответствующим образом изменить их.
другие переменные xctestrun описаны в https://www.manpagez.com/man/5/xcodebuild.xctestrun /
Комментарии:
1. Тот же метод, даже проще: аргументы запуска отображаются как переменные UserDefaults .