Модульное тестирование в Xcode 3.1 - PullRequest
3 голосов
/ 03 сентября 2008

Я прочитал вопрос «Лучший способ модульного тестирования Objective-C и следовал инструкциям, но, что бы я ни делал, модульные тесты не запускались. На самом деле вся программа не запускается, я получаю следующее сообщение.

dyld: библиотека не загружена: @ rpath / SenTestingKit.framework / Versions / A / SenTestingKit Ссылка на / Users / garethlewis / work / objc / UnitTesting / build / Debug / UnitTesting Причина: изображение не найдено

Я установил переменную DYLD_FALLBACK_FRAMEWORK_PATH, а также XCInjectBundle и DYLD_INSERT_LIBRARIES и добавил переменную -SenTest All.

У меня не может быть единственной установки Xcode 3.1, на которой не выполняется модульное тестирование.

Может ли кто-нибудь, кому удалось запустить модульное тестирование на Xcode 3.1, рассказать о том, что нужно сделать. Это очень помогло бы с тем, что я пытаюсь сделать.

1 Ответ

4 голосов
/ 03 сентября 2008

Вам не нужно делать это, чтобы просто запустить свои тесты.

Если вы пишете тесты для приложения, вам просто нужно установить параметры сборки Test Host и Bundle Loader для вашей целевой группы пакетов тестирования, и они будут запущены как часть вашей сборки. Если вы пишете тесты для фреймворка, вам даже не нужно этого делать, просто убедитесь, что ваш тестовый пакет ссылается на ваш фреймворк.

Полагаю, вы на самом деле говорите об отладке ваших тестов, а не просто о запуске их. Если это так, важно дать нам следующую информацию:

  • какие тесты - приложение или фреймворк - вы пытаетесь отлаживать
  • какие переменные среды вы устанавливаете, и какие значения вы устанавливаете для них
  • какие аргументы вы устанавливаете (-SenTest All должен быть аргументом, а не переменной среды)
  • полная ошибка, отображаемая в консоли отладки, а не только конкретная ошибка

Это поможет диагностировать происходящее.

На первый взгляд кажется, что в вашем DYLD_FALLBACK_FRAMEWORK_PATH может быть опечатка, потому что она определяет, где dyld будет искать бинарный файл SenTestingKit.framework, если @rpath не может быть разрешено. Знание того, на что оно настроено, вероятно, поможет.

(PS - это Xcode.)

...