Можно ли запустить тест приложения, который запускается в симуляторе с помощью команды терминала?
Спасибо
Можно ли запустить тест приложения, который запускается в симуляторе с помощью команды терминала?
Спасибо
Да, я заработал. Мое решение является каким-то грубым и может быть неприемлемым в каждом случае.
Отказ от ответственности: Это решение требует редактирования системных файлов. Он работает для меня, но может испортить стек модульного тестирования XCode, особенно если вы не понимаете, что вы делаете.
В /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/RunPlatformUnitTests
заменить
if [ "${TEST_HOST}" != "" ]; then
Warning ${LINENO} "Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set)."
else
с
if [ "${TEST_HOST}" != "" ]; then
mkdir -p "${BUILT_PRODUCTS_DIR}/Documents"
mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Caches"
mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Preferences"
mkdir -p "${BUILT_PRODUCTS_DIR}/tmp"
export CFFIXED_USER_HOME="${BUILT_PRODUCTS_DIR}/"
RunTestsForApplication "${TEST_HOST}" "${TEST_BUNDLE_PATH}"
else
Вы можете переместить фиксированный пользовательский дом в другое место, но я думаю, вам нужно будет перемещать пакеты .app и .octest.
Добавьте -RegisterForSystemEvents
в настройку сборки OTHER_TEST_FLAGS
вашего тестового пакета.
Убедитесь, что ваш тестовый комплект содержит этап сборки script с содержимым
# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
Создайте новую схему для своих тестов.
Вы должны иметь возможность запускать тесты из командной строки с помощью стандартного xcodebuild:
xcodebuild -workspace $(WORKSPACE_NAME).xcworkspace -scheme $(TEST_SCHEME) -configuration debug -sdk iphonesimulator
Симулятор не должен запускаться в то время, когда вы запускаете тесты.
Я надеюсь, что эта информация будет завершена, если что-то не работает должным образом, спросите.
Вы можете убедиться, что Симулятор не работает с этим:
osascript -e 'tell app "iPhone Simulator" to quit'
Вы можете определить, активен ли симулятор с этим:
sh -c 'ps -xaco command | grep "iPhone Simulator"'
Работал отлично, спасибо!
Автоматическое тестирование снова работает на нашем CI-сервере Jenkins!
Просто нужно было исправить мой TEST_HOST=${BUNDLE_LOADER}
. Сделайте это, если при запуске тестов вы получите ошибки о "отсутствии такого файла".
Похоже, что с Xcode 4.5GM теперь поддерживаются текущие тесты приложений в симуляторе.