【发布时间】:2020-02-01 05:13:46
【问题描述】:
所以,我在 Mac 上,使用 Visual Studio 和 Xamarin UI 测试在真正的 iphone 和真正的 android 设备上运行 ui 测试。
我已将 classic 测试夹具设置为 Android 和 IOS 作为不同的测试变体。
[TestFixture(Platform.Android)]
[TestFixture(Platform.iOS)]
public class Tests
{
IApp app;
Platform platform;
public Tests(Platform platform)
{
this.platform = platform;
}
[SetUp]
public void BeforeEachTest()
{
app = AppInitializer.StartApp(platform);
}
}
}
这是我的设备应用配置,我没有使用设备 ID,而是在运行时在我的 IDE 中指定设备:
public static void StartApp()
{
if (Platform == Platform.Android)
{
_app = ConfigureApp
.Android
.InstalledApp(appBundleName)
.EnableLocalScreenshots()
.PreferIdeSettings()
.StartApp(AppDataMode.Clear);
}
if (Platform == Platform.iOS)
{
_app = ConfigureApp
.iOS
.InstalledApp(appBundleName)
.PreferIdeSettings()
.EnableLocalScreenshots()
.StartApp(AppDataMode.Clear);
}
}
}
这在我在单一平台上运行测试时有效——即,注释掉 IOS 平台夹具并仅运行 Android 测试,反之亦然。但是,如果我有两个平台的文本固定装置,并尝试运行所有测试,我会遇到测试无法找到其中一个设备的问题。发现,比如说,android 很好,那些测试按预期运行,但是所有 ios 测试都失败了。
我怀疑这与我的构建配置有关,因为首选 IDE 设置似乎依赖于构建配置来设置应用程序的目标设备。但是,我想检查一下——是否可以使用“首选 ide”设置在 IOS 和 ANDROID 平台上运行测试?我在我的测试板中设置了测试应用程序,它们似乎都针对真实设备。
【问题讨论】:
标签: android ios visual-studio-mac xamarin.uitest