Симулятор Calabash-Cucumber не использует ту же версию приложения, что и схема -cal

Я начинаю со схемы "-cal", работающей точно так же, как в руководстве по установке Calabash говорит мне. Затем я запускаю cucumber для Calabash-iOS. Симулятор, кажется, останавливается и перезапускается перед выполнением тестов в другой (возможно, кешированной версии) моего приложения, и целевое устройство изменилось с iPhone 6 на выполнение тестов в iPhone 5s.

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

Ниже приведен единственный код, выполняемый до запуска сценариев. Я знаю, что там написано .relaunch, но если я его вытащу, тест провалится на первом шаге.

Before do |scenario|
  @calabash_launcher = Calabash::Cucumber::Launcher.new
  unless @calabash_launcher.calabash_no_launch?
    @calabash_launcher.relaunch
    @calabash_launcher.calabash_notify(self)
  end
end

person Chris Traynor    schedule 09.10.2015    source источник


Ответы (2)


Так что тут мало вопросов.

  1. Как я могу заставить огурец выполнять тесты в уже запущенной схеме «-cal»? Ответ: Когда вы строите цель калибровки, вы определяете, для какой цели строить, а когда вы выполняете тесты, вы определяете, на какой цели выполнять. Сборка: -sdk iphonesimulator9.0 Выполнить: DEVICE_TARGET='iPhone 6 Plus (9.0)'

  2. #P3# <блочная цитата> #P4#
person Lasse    schedule 12.10.2015
comment
reset_app_jail устарел в версии 0.10.0 — используйте reset_app_sandbox - person jmoody; 13.10.2015

Симулятор, кажется, останавливается и перезапускается перед выполнением тестов

Симулятор закрывается и перезапускается перед каждым сценарием для стабильности. Если мы будем держать симулятор открытым, он быстро станет нестабильным. Подробности смотрите ниже.

(возможно, кешированная версия) моего приложения

Это больше не проблема, начиная с run-loop 1.5*, которая требуется для Calabash 0.16.4. Какую версию Calabash вы используете? Если вы строите из командной строки и из Xcode, взгляните на этот проект Calabash iOS Smoke Test и, в частности, этот скрипт, который помещает продукты, созданные с помощью Xcode, в тот же каталог, что и сборки из командной строки.

iPhone 6 для запуска тестов на iPhone 5s.

Начиная с Xcode 7.1 симулятором по умолчанию является iPhone 6. До Xcode 7.1 симулятором по умолчанию был iPhone 5s. Лассе верен, используйте DEVICE_TARGET для управления тем, на каком симуляторе работать.

Как я могу заставить огурец выполнять тесты в уже запущенной схеме «-cal»? Или (еще лучше) как я могу перезапустить его, используя схему "-cal"?

Вам не нужно перезапускать между сценариями. Повторный запуск приведет к перезапуску симулятора. Если вы не хотите перезапускать приложение, вы можете использовать специальный бэкдор из калебаса, чтобы сбросить ваше приложение в известное состояние перед каждым запуском теста. Я делал это все время; это действительно ускоряет тестирование. Однако я отказался от этого подхода, потому что его сложно поддерживать, и, как я уже упоминал, симулятор становится нестабильным.

Или (еще лучше) как я могу перезапустить его, используя схему "-cal"?

Этого я на самом деле не понимаю. Вы установили переменную APP? Запускается другое приложение? Вы запускали calabash setup и есть ли в вашем приложении расширение Watch? Если это так, вы, вероятно, столкнулись с этой проблемой: calabash setup вместо этого добавляет calabash.framework в расширение Watch. приложения

person jmoody    schedule 13.10.2015