2013-12-16 3 views
4

Я понял, что аналогичный вопрос задавали раньше, однако предоставленный ответ не распространяется на XCode 5. Я понимаю, что параметр TEST_AFTER_BUILD устарел в XCode 5 (см. unit testing - RunUnitTests error after XCode 5 update) Это, естественно, приводит к моему вопросу: как именно я автоматизировать тестирование модулей после каждой сборки, теперь, когда установка устарела.Как автоматически выполнять модульные тесты для каждого действия «строить и запускать» в XCode 5?

Очень конкретно:

  • У меня есть несколько (более 10) проектов в моем рабочем пространстве.
  • Когда я нажимаю кнопку RUN в Xcode 5 (вверху слева в пользовательском интерфейсе), я хочу, чтобы модульные тесты выполнялись для зависимостей ALL в текущей схеме (предполагая, конечно, что связанные проекты были изменены).
  • Кроме того, если ЛЮБОЙ из тестов завершится с ошибкой, действие сборки и запуска должно завершиться неудачно.

Это работало в XCode 4; см. ссылку выше, чтобы понять, как «старый способ сделать это» теперь нарушен.

Это проблема МИГРАЦИИ. Мне не нужен общий (и, возможно, устаревший) учебник по модульному тестированию в XCode.

+0

надеюсь, что мой ответ помог вам. –

+0

⌘U из Xcode или xcodebuild test с консоли. – Jano

+0

@Jano ⌘U запускает тесты вручную, я хочу, чтобы тесты запускались автоматически и обновляли мой вопрос, чтобы улучшить ясность. Что касается использования теста xcodebuild, или это поможет решить проблему ... (?) –

ответ

0

Выберите проект из навигатора проекта, чтобы открыть редактор проекта. Выберите проект или цель в левой части редактора проекта. Нажмите кнопку «Настройка» в верхней части редактора. Настройка Test After Build устанавливается в коллекции Unit Testing. Затем установите для параметра «Настройка после сборки» значение «Да». Выберите «Продукт»> «Создать для сборки» для тестирования, чтобы создать проект и запустить тесты. Я получил форму ответа на аналогичный вопрос here.

И, пожалуйста, см. this tutorial для автоматического тестирования.

+0

Этот параметр отсутствует в Xcode 5. – Jano

+0

все еще существует «Продукт> Тест» или «Продукт»> «Сборка для> Тестирование», ярлыки, перечисленные на каждой вкладке. – zero3nna

+0

Nitin, это используется для работы в Xcode 4; как указано в Jano, эта настройка была (целенаправленно) удалена из XCode 5. Кроме того, как объяснялось в моем вопросе, пытающемся использовать этот параметр (например, с использованием настраиваемого флага), будет нарушена сборка. Мой вопрос специально нацелен на Xcode 5, поэтому спасибо, что нашли время ответить, но это совсем не помогает. –

1

я, возможно, есть полезная ссылка для вас:
http://meandmark.com/blog/2013/09/xcode-5-unit-testing-changes/
специально часть: XCTest

Это работает в XCode 4; см. ссылку выше, чтобы понять, как «старый способ сделать это» теперь нарушен.

Вы указываете на возможное решение для Xcode 5, даже если я не знаю, соответствует ли его правильный ответ. Может быть, вы должны указать на проблему немного ближе ...



И ваша работа с test scheme вашего проекта? Вы пытались настроить правильное предварительное действие и проверили свои тестовые настройки?

enter image description here

+0

Я не указываю на возможное решение для Xcode 5, только для XCode 4 ... Проверяемая ссылка предоставлена, увиденная раньше, ничего полезного там нет. –

+0

Да, если вы посмотрите на мой предварительный ответ на вопрос, он опирается на тестовое действие схемы (я могу запустить тестовое действие вручную, и это отлично работает). –

+0

Но что заставляет вас думать, что предварительное действие, определенное как часть тестового действия, поможет вообще? Кстати, выход пред/пост-действия не будет отображаться в XCode. Кроме того, хотя вы можете запускать тестовое действие как пост-действие для сборки или запуска, провальные тесты не нарушат ваше действие build/run. Итак, если вывод pre/post-action не отображается в Xcode, как я это знаю? Потому что это можно протестировать с помощью xcodebuild. –

1

Хотя я очень надеюсь на что-то более обтекаемое и более интегрированное, ближе я к фиксации выше:

  • добавление сборки-фазе к проекту, содержащему наше приложение (держать в виду, что у нас есть рабочее пространство, содержащее несколько проектов, большинство из этих проектов генерируют библиотеки, необходимые нашему приложению)
  • фаза сборки вызывает «xcodebuild test» изнутри xcode (см. ниже)

Для добавления фазы сборки, откройте цель мы добавляемая фазу сборки для, затем используйте пункт меню:

редактор> добавить этап сборки> добавить запуск фаза сценария сборки

Обычай скрипт для вызова xcodebuild выглядит следующим образом:

cd DIR 
xcodebuild -workspace MY_WORKSPACE.xcworkspace -scheme MY_SCHEME -destination ‘platform=iOS Simulator,name=iPhone’ test 
... 

где: DIR - каталог, содержащий мое рабочее пространство.
... - повторить вызов команды для каждой тестируемой библиотеки.

(Добавлено some info on my blog)

Это далеко от совершенства, но за неимением лучшего, это делает работу. Спасибо за сообщение, если у вас есть лучшее решение.

+0

Это не работает в Xcode 6. Кажется, он создает бесконечный цикл работы с xcodebuild. Кроме того, где я могу просмотреть вывод команды xcodebuild? –

+0

Если это работает (или не работает, даже), вы должны увидеть его, где вы обычно будете искать вывод сборки Xcode. Сказав это, рассмотрите возможность использования CI-решения. Это никогда не очень хорошо работало в Xcode 5, не говоря уже о Xcode 6 –

Смежные вопросы