Остановить сброс симулятора для тестов

Я запускаю Calabash-IOS на своем симуляторе. Если я наберу cucumber в терминале, когда приложение уже запущено, он выключит весь симулятор и запустит его новый экземпляр, а затем запустит все тесты. Он запускает все мои сценарии входа и схемы только для того, чтобы проверить одну вещь после того, как пользователь вошел в систему.

Есть ли способ отключить это, чтобы тесты запускались с того места, где я оставил представление открытым?


person IhateMacsSad    schedule 06.02.2018    source источник


Ответы (2)


Из документации Calabash::Cucumber::Launcher.

Присоединение к текущей программе запуска в консоли

Если Calabash уже запущен и вы хотите подключиться к текущему лаунчеру, используйте console_attach. Это полезно, когда сценарий огурца не удался, и вы хотите запросить текущее состояние приложения.

Теоретически это означает, что для подключения можно использовать console_attach. к работающему экземпляру калебаса.

person Sander Saelmans    schedule 06.02.2018
comment
Правильный! Когда вы запускаете консоль calabash-ios, она пытается подключиться к работающему серверу calabash. console_attach не следует использовать в ваших тестах. Я думаю, что это на самом деле не отвечает на вопрос пользователя. Я думаю, что пользователь должен использовать теги огурца, блоки «До», «После» или бэкдоры Calabash. - person jmoody; 07.02.2018
comment
Да. Это не совсем отвечает на мой вопрос. Я хотел бы начать выполнять свои тесты с определенного представления, не проходя все тесты только для проверки одного бита. - person IhateMacsSad; 07.02.2018
comment
В этом случае @jmoody прав. Вам понадобится бэкдор в вашем приложении, который направит вас к правильному ViewController. В зависимости от сложности и зависимостей вашего приложения, написание такого маршрутизатора может быть довольно сложным. - person Sander Saelmans; 07.02.2018
comment
Нет ли простого способа не просто сбросить симулятор при запуске огурца? - person IhateMacsSad; 07.02.2018
comment
Вы можете попробовать установить переменную среды RESET_BETWEEN_SCENARIOS в "0". Если выход из приложения также вызывает проблемы, вы можете установить QUIT_APP_AFTER_SCENARIO на "0". - person Sander Saelmans; 07.02.2018

Это моя конфигурация в папке support:

01_launch.rb

require 'calabash-cucumber/launcher'

# You can find examples of more complicated launch hooks in these
# two repositories:
#
# https://github.com/calabash/ios-smoke-test-app/blob/master/CalSmokeApp/features/support/01_launch.rb
# https://github.com/calabash/ios-webview-test-app/blob/master/CalWebViewApp/features/support/01_launch.rb

module Calabash::Launcher
  @@launcher = nil

  def self.launcher
    @@launcher ||= Calabash::Cucumber::Launcher.new
  end

  def self.launcher=(launcher)
    @@launcher = launcher
  end
end


$testServerRunning = false


Before do |scenario|
  scenario_tags = scenario.source_tag_names
  if !$testServerRunning || scenario_tags.include?('@restart')
    if $testServerRunning
      shutdown_test_server
    end

    start_test_server_in_background

    $testServerRunning = true
  end
end

After do |scenario|
  Cucumber.wants_to_quit = false
  if scenario.failed?
    screenshot_embed
  end
end

env.rb

require "calabash-cucumber"

# Cucumber -d must pass, but support/env.rb is not eval'd on dry runs.
# We must detect that the user wants to use pre-defined steps.
dir = File.expand_path(File.dirname(__FILE__))
env = File.join(dir, "env.rb")

contents = File.read(env).force_encoding("UTF-8")

contents.split($-0).each do |line|

  # Skip comments.
  next if line.chars[0] == "#"

  if line[/calabash-cucumber\/cucumber/, 0]
    require "calabash-cucumber/calabash_steps"
    break
  end
end
person kubano    schedule 09.02.2018