如何设置Xamarin.UITest套件默认使用iPhone 12 Pro模拟器?
修改Xamarin.UITest默认模拟器为iPhone 12 Pro的几种方法
方法1:在UITest初始化代码中固定默认设备
你可以把目标设备的UUID直接整合到UITest的启动配置里,不用每次写测试都手动加.DeviceIdentifier:
- 先通过Xcode的
Window > Devices and Simulators找到iPhone 12 Pro的UUID - 在UITest项目的
AppInitializer.cs(或测试启动类)里修改iOS配置:
public static IApp StartApp(Platform platform) { if (platform == Platform.iOS) { // 替换为你的iPhone 12 Pro的UUID return ConfigureApp.iOS() .DeviceIdentifier("你的设备UUID") .StartApp(); } // Android配置部分省略 }
要是后续需要换设备,直接改这里的UUID就行;嫌硬编码麻烦的话,也可以把UUID存在appsettings.json这类配置文件里,读取后传入。
方法2:设置Xcode默认模拟器
UITest会优先使用Xcode设置的默认模拟器,操作步骤如下:
- 打开Xcode(随便打开一个iOS项目或你的Xamarin.iOS项目)
- 在顶部工具栏的设备选择下拉框里选中iPhone 12 Pro
- 点击
Product > Destination > Destination Architectures > Show All Destinations,右键点击iPhone 12 Pro选择Make Default
之后UITest不指定DeviceIdentifier时,就会自动用这个默认模拟器。
方法3:让UITest和调试模式设备同步
如果想让UITest跟着你调试时选的设备走,需要动态获取当前选中的设备ID:
- 调试会话启动时,通过脚本把选中的设备ID注入到UITest的运行环境变量中
- 在UITest启动代码里读取这个环境变量,传入
DeviceIdentifier:
var deviceId = Environment.GetEnvironmentVariable("SELECTED_IOS_DEVICE_ID"); // 没获取到的话用预设的默认UUID return ConfigureApp.iOS() .DeviceIdentifier(deviceId ?? "你的iPhone 12 Pro UUID") .StartApp();
这样调试时切换设备,UITest就会自动对应上选中的设备。
内容的提问来源于stack exchange,提问作者Kikanye
相关产品推荐
相关产品推荐

