Да, я получил его на работу.Мое решение несколько грубое и может не подойти в каждом случае.
Отказ от ответственности: Это решение требует редактирования системных файлов.Это работает для меня, но может испортить стек модульного тестирования 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
настройка сборки вашего тестового комплекта.
Убедитесь, что ваш тестовый комплект содержит фазу сборки сценария запуска с содержанием
# 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
Имитатор не должен быть запущен во время выполнения тестов.
Я надеюсь, что эта информация полна, если что-то не работает, как ожидалось, пожалуйста, спросите.