Сбой OCMock во время выполнения

Я впервые пытаюсь использовать OCMock в своих тестовых примерах. Это проект для Mac, созданный и предназначенный для Lion в Xcode 4.3. В основном приложении и в тестовом пакете ARC включен, поэтому каждый раз, когда я выполняю тесты, я вижу следующее сообщение в журнале:

GC: принудительное выключение GC, поскольку установлен OBJC_DISABLE_GC.

Это нормально, так как я использую ARC, поэтому меня не волнует GC. Когда я создаю свои модульные тесты, связанные с последней стабильной версией OCMock (2.0.1), в сборке нет проблем. Во время выполнения после приведенного выше оператора журнала я получаю следующее:

Пакет тестов в /Users/___/Library/Developer/Xcode/DerivedData/___-ayizwpehemunvodsdvczckkvarsh/Build/Products/Debug/___Tests.octest не может быть загружен, потому что его информация о времени выполнения Objective-C не соответствует информации о времени выполнения, необходимой для тестовой установки. Вероятно, это связано с тем, что тестовая установка запускается с отключенной сборкой мусора Objective-C, но для тестового пакета требуется сборка мусора Objective-C. Чтобы включить сборку мусора Objective-C для тестовой установки, запустите ее в среде без переменной среды OBJC_DISABLE_GC. 2012-03-06 10:29:32.812 otest[8486:203] *** NSTask: создание задачи для пути '/Users/___/Library/Developer/Xcode/DerivedData/___-ayizwpehemunvodsdvczckkvarsh/Build/Products/Debug/___Tests .octest/Contents/MacOS/___Тест не пройден: 22, «Неверный аргумент».Завершение временного процесса.

Сообщение подразумевает, что сборка мусора является наиболее распространенной причиной, но, как уже упоминалось, я никоим образом не использую сборщик мусора. Итак, какие еще настройки могут мешать мне во время выполнения? Я не думал, что делаю что-то нетипичное, и я просмотрел настройки своего тестового проекта, чтобы быть уверенным, и не увидел ничего странного.

Обновление

Мне удалось воспроизвести это с новым пустым проектом.

  1. Создайте новый проект и создайте модульные тесты с включенным ARC.
  2. Очистите настройку Test Hostв настройках сборки пакета модульных тестов.
  3. Ссылка на платформу OCMock.
  4. Выполнить. тесты и наблюдаю ту же ошибку, о которой я сообщил выше

. Кроме того, когда я отключаю ARC и делаю сборку мусора Required, затем clangсообщает об ошибке компоновщика mach-o, поэтому сборка не проходит. Если я удалю ссылку на фреймворк OCMock, он будет работать нормально. Это подтверждает мою первоначальную мысль о том, что проблема заключается не в сборке мусора, а в чем-то другом.

5
задан Dov 8 May 2013 в 15:12
поделиться