Запуск точек останова из бота Xcode 5 CI

У меня есть сервер Xcode 5 CI, на котором выполняются модульные тесты XCTest.

Мои тестовые примеры полагаются на точки останова для запуска определенных действий. Эти действия необходимы для запуска тестов.

Все проходит, если я запускаю тесты локально. Проблема в том, что когда бот запускает тесты на сервере, создается впечатление, что точки останова игнорируются.

Я попробовал пробную точку останова со звуком предупреждения, просто для тестирования. Я поделился точкой останова и зафиксировал общую точку останова в репозитории git проекта. Бот правильно проверяет проект с включенной точкой останова (я могу убедиться в этом, изучив проект в /Library/Server/Xcode/Data/BotRuns/Cache/...).

Однако, когда бот запускается, точка останова НЕ срабатывает. Я не слышу звук и исполнение не останавливается.

Такое поведение, очевидно, имеет смысл для большинства случаев, но в моем конкретном случае — есть ли способ настроить бота так, чтобы точки останова не игнорировались?


person chris838    schedule 12.03.2014    source источник


Ответы (1)


Независимо от того, можете ли вы включить это или нет, чтобы ваши тесты полагались на что-то внешнее по отношению к тестируемой системе, например, на точку останова, чтобы убедиться, что ваши тесты проходят, мне кажется сломанным дизайном.

В идеале ваши тесты должны запускаться на любом компьютере как в интерактивном, так и в неинтерактивном режиме. Поскольку вы не можете гарантировать, что точки останова имеют установленный флаг «Автоматически продолжать после оценки», то они, похоже, определенно не подходят для неинтерактивного запуска.

Использование точек останова для тестирования также добавляет зависимость от Xcode для запуска тестов, поскольку другие системы сборки, такие как xcodebuild и xctool, могут даже не понимать точки останова в файле проекта.

Я бы реорганизовал ваши тесты, чтобы удалить эту зависимость от точек останова. Если вам нужна помощь с этим, это звучит как отличный вопрос о переполнении стека;)

person jackslash    schedule 14.03.2014
comment
В этом случае тестируемая система включает в себя специальное оборудование, подключенное к нашему CI-серверу. Нам нужен способ общения со специальным оборудованием из тестов, запущенных на iPhone — я подумал, что действия точки останова отладчика могут быть быстрым и грязным решением! Но да, вы совершенно правы, что такая зависимость от точек останова — плохая идея. С тех пор я реорганизовал тесты, чтобы вместо этого использовать интерфейс WiFi. Я думал, что оставлю этот вопрос, потому что мне все еще любопытно, есть ли ответ. - person chris838; 17.03.2014