上下文
我有一台运行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源...)?
答案 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
}