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