我开始使用“-cal”方案,就像Calabash setup guide告诉我的那样。然后我为Calabash-iOS运行cucumber
。模拟器似乎在我的应用程序的不同(可能是缓存版本)执行测试之前停止并重新启动,并且目标设备已从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
答案 0 :(得分:1)
所以那里几乎没有问题。
如何让黄瓜在已经运行的“-cal”方案中执行测试? 答案:构建cal目标时,您可以定义要构建的目标,并在执行测试时定义要执行的目标。 构建:-sdk iphonesimulator9.0 执行:DEVICE_TARGET ='iPhone 6 Plus(9.0)'
模拟器似乎在我的应用程序的不同(可能是缓存版本)执行测试之前停止并重新启动,目标设备已从iPhone 6更改为在iPhone 5s中运行测试。 答:也部分与问题1相关(定义目标来控制您测试的设置)。除此之外,应用程序将在场景之间重新启动,否则每个场景将取决于之前执行的其他任务。 您可以切换的一件事是应该在场景之间重新安装应用程序。如果您有一些仅在首次安装/启动时显示/执行的功能,这将非常有用。要添加对重新安装的支持,您可以在“之前做|场景|”
中向launch.rb文件添加类似的内容。如果scenario_tags.include?('@重新安装') @ calabash_launcher.reset_app_sandbox结束
答案 1 :(得分:1)
模拟器似乎在执行测试之前停止并重新启动
模拟器在每个场景之前退出并重新启动以确保稳定性。如果我们让模拟器保持打开状态,它会很快变得不稳定。有关详细信息,请参见下文。
我的应用程序的(可能是缓存版本)
这不再是从运行循环1.5 *开始的问题,这是Calabash 0.16.4所要求的。 What version of Calabash are you running?如果您是从命令行和Xcode构建的,请查看此项目Calabash iOS Smoke Test,特别是this script,它将Xcode构建的产品分级到与命令行构建相同的目录。
iPhone 6在iPhone 5s中运行测试。
从Xcode 7.1开始,默认模拟器是iPhone 6. Pre Xcode 7.1,默认模拟器一直是iPhone 5s。 Lasse是正确的,请使用DEVICE_TARGET
来控制要运行的模拟器。
如何让黄瓜在已经运行的" -cal"中执行测试?方案?或者(更好的是)如何使用" -cal"重新启动它?方案?
您不必在场景之间重新启动。重新启动将重新启动模拟器。如果您不想重新启动,可以使用自定义的calabash后门在每次测试开始之前将应用重置为一个熟知的状态。我曾经一直这样做;它真的加快了测试速度。但是,我放弃了这种方法,因为它很难维护,正如我所提到的,模拟器变得不稳定。
或者(更好的是)如何使用" -cal"重新启动它?方案
我实际上并不理解。你设置了APP变量吗?是另一个应用程序启动?您运行calabash setup
并且您的应用是否有Watch扩展程序?如果是这样,您可能会遇到此问题:calabash setup
adds calabash.framework to Watch extension instead of the app