2

如何将 Calabash 框架添加到内置于 React Native 的 iOS 应用程序中?

我们正在将我们的 iOS 应用程序的代码库从 Swift 迁移到 React Native,并且我有一套现有的使用 Xamarin.UITest 在 C# 中构建的 UITest。

我想继续为 React Native iOS 应用程序使用我的 Xamarin.UITest 套件,但我知道 Xamarin.UITest 需要在应用程序的源代码中链接 Calabash 框架。

Xamarin 有关于如何为在 Xcode 中构建的 iOS 应用程序链接 Calabash 的文档,但我找不到任何关于如何为在 React Native 中构建的 iOS 应用程序链接 Calabash 的文档。

是否有任何类似的文档显示如何将 Calabash 链接到 React Native iOS 应用程序?

4

2 回答 2

3

在 React Native 中构建的 iOS 应用程序会自动创建一个.xcodeproj文件并依赖 Xcode 项目进行构建/部署。这是一个新初始化的 React Native 项目的图像。

在此处输入图像描述

Xamarin.UITest 要求将 Calabash 框架链接到 iOS 应用程序。因为 React Native iOS 应用程序依赖于 . .xcodeproj,所以我们可以按照与使用 Swift/ObjC 编写应用程序相同的步骤注入 Calabash。要完成,请按照本教程:在调试配置中链接葫芦

在 JavaScript 源代码中,使用该accessibilityLabel属性为每个屏幕元素添加一个唯一标识符。在此示例中,我们将 TextInput 标识为“TextInputAccessibilityId”。

在 Xamarin.UITest 中,我们现在可以创建一个字段 ,readonly Query TextInput并使用相同的属性对其进行初始化:TextInput = x => x.Marked("TextInputAccessibilityId");。现在我们可以在 Xamarin.UITest 中与这个屏幕元素进行交互了

所有测试都在 Xamarin 测试云中进行了验证,结果可在此处查看

于 2017-01-10T00:08:59.853 回答
0

使用 Xamarin 测试记录器将 Calabash 注入 IPA

您可以使用的一种选择是使用 Xamarin 测试记录器将 Calabash 注入您的 IPA:https ://developer.xamarin.com/guides/testcloud/testrecorder/

就用于构建原始 IPA 的方法而言,此方法与框架无关,因为它将其注入到已编译的 IPA 中。Xamarin 测试记录器在您设置应用程序以使用记录器后执行此操作:https ://developer.xamarin.com/guides/testcloud/testrecorder/#Recording_a_Test

此时,您可以使用测试记录器本身创建 UITests 并导出它们:https ://developer.xamarin.com/guides/testcloud/testrecorder/#Exporting_the_Recorded_Test 。或者您可以只使用与原始 IPA 位于同一位置的已辞职 IPA,名称前加“xtr-”,如下所示:

  • myAwesomeApp.ipa(原国际音标)
  • xtr-myAwesomeApp.ipa(带有葫芦的 IPA)

需要注意的事项

  • IPA 被测试记录器辞退- 为了让 Xamarin 测试记录器注入 Calabash,它还需要辞去 IPA。为此,执行辞职的系统需要具有有效的签名身份和有效的配置文件,包括应用程序使用的权利。

  • 任何包含 Calabash 的 IPA 都将被 iOS 应用商店拒绝- 无论使用什么方法将 Calabash 添加到 IPA 都是如此,但记住这一点很重要。在上面的示例中,您将使用应用商店进行测试xtr-myAwesomeApp.ipa并将其提交myAwesomeApp.ipa给应用商店。

  • 录制的测试必须导出为单独的 .cs 文件才能使用- 即使您录制了一些测试,这些测试并不直接包含在 IPA 本身中,但测试记录器可以将它们导出为 .cs 文件,其结构方式与你将如何手写 Xamarin.UITests。

于 2017-01-06T22:19:42.710 回答