【问题标题】:Calabash-ios: Run test physical device installed ipa without xcodeprojCalabash-ios:在没有 xcodeproj 的情况下运行测试安装了 ipa 的物理设备
【发布时间】:2015-10-01 16:04:38
【问题描述】:

我是 calabash-ios 的新手,有一个愚蠢的问题是:

我怎么可能在安装了 ipa 文件(包括 calabash 框架)且没有 xcodeproj 的真实设备上运行葫芦测试?

问题是我在做 QA,而 Dev 只给我 ipa 文件来测试,没有源代码。

更新: 我可以通过添加 BUNDLE_ID 在控制台和黄瓜中运行 ipa 文件。并确保 CFNetwork.framework 包含在应用框架中以建立连接。

但是我在运行场景时遇到了另一个问题: 1.当我运行以下命令时:

DEVICE_ENDPOINT=http://192.168.1.9:37265 NO_LAUNCH=1 BUNDLE_ID=com.example.appname DEVICE_TARGET=UDID cucumber

然后我得到了这个错误:

 A JSON text must at least contain two octets! (JSON::ParserError)
  features/my_first.feature:8:in `Then I touch "LOG-IN/ CREATE ACCOUNT"'

跳过所有其他步骤

  1. 然后我运行控制台代码

    DEVICE_ENDPOINT=http://192.168.1.9:37265 NO_LAUNCH=1 BUNDLE_ID=com.example.appname DEVICE_TARGET=UDID calabash-ios console
    

然后我运行 server_version 我收到回复说连接成功 但是当我运行 start_test_server_in_background 我等得太久了,我看到我的物理设备一直崩溃的应用程序一次又一次地启动,直到它停止:

Unable to start. Make sure you've set APP_BUNDLE_PATH to a build supported by this simulator version
Calabash::Cucumber::Launcher::StartError: Calabash::Cucumber::Launcher::StartError: 

"Timed out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError.
 2015-10-01 10:49:41.634 instruments[15640:10558880] WebKit Threading Violation - initial use of WebKit from a secondary thread.
 2015-10-01 10:49:42.574 instruments[15640:10558978] Attempting to change event horizon while disengage
 2015-10-01 10:49:42.577 instruments[15640:10558877] Attempting to change event horizon while disengage
 Instruments Trace Error : Target failed to run: Permission to debug app

任何人都可以帮忙!我试图搜索一些解决方案,但它们几乎在模拟器上发布并且它们包含 xcodeproj。作为 QA,我没有源代码,只有 .ipa 文件。 :( 谢谢

【问题讨论】:

  • 我更新了答案。

标签: ios json xcode calabash


【解决方案1】:

你应该设置 3 个变量:

$ DEVICE_TARGET=<UDID> \
    DEVICE_ENDPOINT=http://<ip>:37265 \
    BUNDLE_ID=com.example.YourApp cucumber

设备和主机应该在同一个网络上。

.ipa 必须安装在您的设备上。

您可以在 Xcode 中通过在设备管理器窗口中拖放或使用第三方工具(如 ideviceinstaller(随 homebrew 提供))来执行此操作。

你不应该永远设置NO_LAUNCH

http://calabashapi.xamarin.com/ios/file.ENVIRONMENT_VARIABLES.html#label-NO_LAUNCH

您还需要在 Settings.app > Developer 中启用您的设备进行开发并打开 UIAutomation。

  1. Enabling device for development
  2. RunLoop::Fifo::NoReaderConfiguredError

更新 为了回答这个问题,我重写了Testing on Physical Devices Calabash iOS wiki 页面。哇,那个内容很古老!

【讨论】:

    【解决方案2】:

    只要文件是用葫芦构建的,那么这不是问题。您只需使用 APP_BUNDLE_PATH 调用 cucumber 到您的 .ipa 文件所在的位置并且应该全部设置。

    但您应该知道,需要构建 .ipa 以匹配您运行测试的目标。

    【讨论】:

    • 感谢您的提示。我实际上使用 DEVICE_TARGET 和 BUNDLE_ID 而不是 APP_BUNDLE_PATH 运行它。无论如何,您不知道当我执行“触摸”之类的操作时,应用程序崩溃并且错误提示: JSON 文本必须至少包含两个八位字节! (JSON::ParserError)
    • 安迪我相信我确实回答了你的问题。但是,在您的评论中,在我看来您提出了一个新问题。如果您想重新表述您的问题,请这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 2013-10-03
    相关资源
    最近更新 更多