XCUITest передает аргументы в тест

#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 .