准备 Xamarin.iOS 应用
重要
Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。
本指南提供有关准备 Xamarin.UITests 以上传到 App Center 测试的说明。 选择要开始的平台。
Xamarin.iOS 应用必须将 Xamarin Test 云代理链接到应用的 .ipa 文件。 Xamarin Test 云代理是一种特殊的嵌入式 HTTP 服务器,允许 Xamarin.UITests 与 iOS 用户界面交互。 测试云代理通过 NuGet 添加到 iOS 项目。
提示
Xamarin.UITest 也支持非 Xamarin iOS 应用,但 Xamarin Test Cloud Agent 需要 链接 Calabash,而不是 Xamarin Test Cloud Agent。
Visual Studio for Mac
对于 Visual Studio for Mac 中的 iOS 项目,右键单击“包”文件夹,选择“添加包”。 搜索 Xamarin Test Cloud Agent,并单击“ 添加包”:
Visual Studio (Windows)
重要
无法在 Windows 上本地执行适用于 iOS 应用的 Xamarin.UITests。 你仍然可以从 Windows 创建、编译并上传到 App Center 测试。
对于 Visual Studio for Windows 中的 iOS 项目,右键单击项目,然后从上下文菜单中选择“ 管理 NuGet 包 ”。 在 NuGet 包管理器 中,搜索 Xamarin Test Cloud Agent ,然后单击 “确定” 安装该包:
初始化 Xamarin 测试云代理
将 Xamarin Test Cloud Agent 添加到 iOS 项目后,必须在 iOS 应用启动时初始化 Xamarin Test Cloud Agent。 编辑 AppDelegate 类,并将以下代码片段添加到 FinishedLaunching
方法:
#if ENABLE_TEST_CLOUD
Xamarin.Calabash.Start();
#endif
警告
如果你提交包含 Xamarin Test Cloud 代理的应用,Apple 将拒绝你的应用。 仅使用开发预配配置文件签名的应用支持 Xamarin 测试云代理。 提交到 App Center 测试时,如果可能,IPA 会自动使用开发预配配置文件之一重新签名。
将初始化代码括在 ENABLE_TEST_CLOUD 条件编译语句中时,Xamarin 链接器会将 Xamarin Test Cloud Agent 保留在使用 ENABLE_TEST_CLOUD 标志的内部版本中。 通常 调试 生成,但不 调试发布 版本。 在 Visual Studio 中创建的新 Xamarin.iOS 应用使用此方法。
生成上传命令
准备好测试套件后,可以 设置测试运行 以上传和运行测试。 此过程将生成一个原型命令行,如下所示:
appcenter test run uitest --app "MyOrg/MyApp" --devices "MyOrg/MyDeviceSet" --app-path pathToFile.ipa --test-series "main" --locale "en_US" --build-dir pathToUITestBuildDir
命令行需要进行一些修改:
- 必须为 &
--build-dir
参数--app-path
提供路径。 - 如果 CLI 无法自动找到所使用的 UITest 包, 则可能需要 指定它:
--uitest-tools-dir /Users/{your username}/.nuget/packages/xamarin.uitest/{UITest version}/tools