如何告诉Calabash不要在模拟器时超时......慢慢地......研究动作?

时间:2016-03-03 08:48:22

标签: calabash calabash-ios

上下文

我有一台运行Xcode的Mac Mini,并且用Calabash进行了一系列Cucumber测试。

问题

它们失败是因为模拟器需要很长时间(可能是50秒)才能启动并运行。我已经尝试通过timeout启动选项(根据文档将它们传递给我的电话),但我还是失败了,我还没有理解如何在calabash-ios console模式下使用启动选项。

我正在阅读来源,希望找到未记录的内容here

我实际上没有从this question获得进展:

calabash-ios console
> Running irb...
> irb(main):001:0> start_test_server_in_background(:timeout => 6000)
> RunLoop::Xcrun::TimeoutError: Xcrun timed out after 30.30 seconds executing
> xcrun instruments -s templates
> with a timeout of 30

我可以完全禁用启动超时,并且如何我会这样做(保存编辑calabash源...)?

2 个答案:

答案 0 :(得分:3)

这不是很明显,但有办法。从xcrun.rb(实际上在run_loop宝石中),

# You can override these values if they do not work in your environment.
#
# For cucumber users, the best place to override would be in your
# features/support/env.rb.
#
# For example:
#
# RunLoop::Xcrun::DEFAULT_OPTIONS[:timeout] = 60

如果这对您不起作用,请告诉我。

至于完全禁用它,我认为在超时时使用巨大的值会更容易。但请记住,超时是有原因的。如果您的模拟器实际卡住并且由于某种原因无法启动,那么保留一些超时是合理的。

答案 1 :(得分:1)

  

难以忍受的慢

您必须更新到新计算机。我推荐一个SSD驱动器 - 它会真正加速你的模拟器测试。

RunLoop::Xcrun::DEFAULT_OPTIONS[:timeout]外,请参阅RunLoop::CoreSimulator::DEFAULT_OPTIONS

  # These options control various aspects of an app's life cycle on the iOS
  # Simulator.
  #
  # You can override these values if they do not work in your environment.
  #
  # For cucumber users, the best place to override would be in your
  # features/support/env.rb.
  #
  # For example:
  #
  # RunLoop::CoreSimulator::DEFAULT_OPTIONS[:install_app_timeout] = 60
  DEFAULT_OPTIONS = {
    # In most cases 30 seconds is a reasonable amount of time to wait for an
    # install.  When testing larger apps, on slow machines, or in CI, this
    # value may need to be higher.  120 is the default for CI.
    :install_app_timeout => RunLoop::Environment.ci? ? 120 : 30,
    :uninstall_app_timeout => RunLoop::Environment.ci? ? 120 : 30,
    :launch_app_timeout => RunLoop::Environment.ci? ? 120 : 30,
    :wait_for_state_timeout => RunLoop::Environment.ci? ? 120 : 30
  }