我在我的项目中安装了 Calabash 作为 pod。gem 本身是使用捆绑器安装的。当我尝试为我的 Calabash 目标运行 cucumber 时,第一个功能启动但只是挂起并且模拟器从未启动:

$ bundle exec cucumber
Feature: Ensure Login and Oauth Screen Functionality

  Scenario: Verify Welcome Page                 # features/Sign_in.feature:3

我的安装的更多详细信息:

# xcode installation location
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

# xcode version
$ xcodebuild -version
Xcode 5.1.1
Build version 5B1008

# calabash version
$ bundle exec calabash-ios version
0.9.168

# calabash < 0.9.169 or Xamarin IDE users
# start your app manually in the simulator or from Xcode and then launch a console
$ bundle exec calabash-ios console
> server_version
{
                        "outcome" => "SUCCESS",
                         "app_id" => "[REDACTED]",
               "simulator_device" => "iPhone",
                        "version" => "0.9.168",
                       "app_name" => "[REDACTED]",
    "iphone_app_emulated_on_ipad" => false,
                          "4inch" => true,
                            "git" => {
        "remote_origin" => "git@github.com:jmoody/calabash-ios-server.git",
               "branch" => "master",
             "revision" => "adde106"
    },
                    "app_version" => "2.0.1",
                    "iOS_version" => "7.1",
                         "system" => "x86_64",
                      "simulator" => "iPhone Simulator 463.9.41, iPhone OS 7.1 (iPhone Retina (4-inch)/11D167)"
}
有帮助吗?

解决方案

好的,这意味着 calabash 无法找到您的应用程序。

先试试这个,

  1. 评论app_bundle_path在您的Project/features/upports/01_launch.rb上的app_bundle_path定义 #APP_BUNDLE_PATH = "~/..../../myApp-cal.app" 因此,Calabash Gem可以自动找到该应用程序。
  2. 打开控制台并从中转到项目文件夹。然后输入 gem install calabash-cucumber 这将安装 calabash gem,即使您之前安装了它,也可以再次运行,也没有什么坏处。然后输入 calabash-ios setup 在该终端中,这将创建一个 calabash 目标并将 calabash 框架添加到您的 iOS 项目中。有关设置过程的更多详细信息,请参阅 这里.
  3. 现在在 xcode 编辑器中打开项目文件(您可以看到 calabash.framework 已成功添加到项目的框架组中。)选择 yourApp-cal 目标和您想要清理的模拟器,在模拟器上构建并运行 yourApp-cal 目标。
  4. 然后停止它并返回到控制台输入 calabash-ios console console 将启动一个 ruby​​ 控制台,您可以使用该应用程序。现在(虽然模拟器在您的屏幕上,但您的应用程序在该模拟器的后台)类型 start_test_server_in_background 您的应用程序必须进入前台。如果有效,葫芦可以在模拟器上找到并运行您的应用程序。
  5. 请记住,仅当您使用 xcodebuild 命令或脚本或其他内容在单独的文件夹上创建应用程序版本时,才需要设置 APP_BUNDLE_PATH 变量。

其他提示

Chathura的答案为我的一位同事工作,但是我们必须找到另一种解决方案。

我们在引入Cocoapods后发生的问题。在Xcode中,我打开了组织者,注意到我们有一个用于BP(POD之前)项目的派生数据文件夹,另一个用于Workspace的POD。我删除了BP项目的派生数据文件夹,然后工作。

我在这样做之前重新设置了calabash,所以我案件中的解决方案可能是Chathura的答案和我的组合。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top