2015-02-06 62 views
1

我想我错过了一些明显的东西。我遵循快速通道指示找到here 。我没有做任何额外的配置。葫芦/黄瓜不认识标签

我对我在项目中设置的视图标签上的简单测试运行cucumber命令。它失败了...然后我在终端执行:

calabash-ios console 
start_test_server_in_background 
query("view") 

我看不到我在项目中设置的视图层次结构中的标签。如果我随后重新构建我的项目(在控制台中)并再次运行query(“view”),我会看到之前缺少的标签。这里发生了什么?为什么我必须在控制台中构建项目以查看项目的当前状态?控制台和黄瓜命令(可能不/不会)识别这些标签的原因是什么?

+0

你确定你正在为同一个目标,你开始模拟器/控制台?如果您分享如何构建以及如何运行控制台,这将有所帮助。启动控制台时,您可以同时包含apk位置以及要使用的模拟器。像这样APP_BUNDLE_PATH =构建/产品/调试-iphonesimulator/myapp-cal.app DEVICE_TARGET ='iPhone 5s(7.1模拟器)'葫芦-ios控制台 – Lasse 2015-02-06 12:19:05

+0

我确定为同一个目标建设。我打开01_launch.rb文件并将APP_BUNDLE_PATH设置为葫芦目标的派生数据包路径,然后是我尝试过。在执行此操作之前,我在ProjectName-cal方案下的XCode中构建项目。我运行控制台时未按照您的指定设置束路径或设备目标;我试过了,在设置了APP_BUNDLE_PATH之后,它似乎能够在上下文中工作;运行cucumber命令时出现错误,但是在场景之后显示:行:“没有将nil隐式转换为String(TypeError)” – Morkrom 2015-02-06 23:42:24

+0

它可能与calabash上的错误相关https://github.com/葫芦/ run_loop/issues/102至少错误报告听起来很相似。 – Lasse 2015-02-09 02:20:30

回答

0

从Xcode 6开始,instruments不再在模拟器上重新安装应用程序。我最好的猜测是你在模拟器上构建并运行了一个不包含标签的版本。然后你在ObjC/Swift端添加标签。您可能已经构建了该项目,但未运行。那么,你可能已经跑了 - 我会在一会儿。当你去控制台,你希望能够查询标签。

我们不清楚instruments进程是否应该在目标模拟器上重新安装.app。有时似乎,但大多数情况并非如此 - 这不是我有兴趣理解的行为。

很容易发现自己正在测试一个陈旧的二进制文件。

在我的工作流程中,我通常在运行测试之前重置模拟器。

$ bundle exec calabash-ios sim reset 

这迫使instruments安装我的应用程序的最新版本。

通常,我使用构建脚本来确保我使用的是正确版本的.app。