Xamarin UI 测试 - 不会 运行 从 Visual Studio 测试 Mac

Xamarin UI Test - will not run tests from Visual Studio for Mac

我有三个独立的应用程序,我试图在其中创建自动化 UI 测试。这三个应用程序都是用 Xamarin Forms 编写的,所有这三个应用程序 运行 都在 AppCenter 的测试云中,其中两个应用程序将在本地设备和模拟器上执行。

但是,其中一个应用程序不会 运行 在本地进行测试,这使得尝试围绕它编写测试变得很困难。对于 iOS 和 Android,在设备上或 simulator/emulator.

上都是如此

在所有三个应用程序中,我都有一个包装 IApp 实例的接口,它被传递到 iOS 的实现和 Android 的实现,具体取决于其中的平台测试 运行ning.

为了设置 IApp 的实例,我正在执行以下操作(这对所有三个应用程序也是如此):

      switch (platform)
      {
        case Platform.Android:
          _app = ConfigureApp
            .Android
            .EnableLocalScreenshots()
            ?.StartApp();
          break;
        case Platform.iOS:
          _app = ConfigureApp
            .iOS
            .EnableLocalScreenshots()
            ?.StartApp();
          break;
        default:
          throw new ArgumentOutOfRangeException(nameof(platform), platform, null);
      }

然而,使用这些应用程序之一,尝试 运行 针对 iOS 模拟器的 UI 测试总是失败并显示 OneTimeSetUp: System.Exception : Must have either installed app or app bundle. 并且任何尝试 运行 针对 Android 模拟器的 UI 测试总是失败 OneTimeSetUp: System.Exception : ApkFile or InstalledApp has not been configured.

我尝试将 AppBundle 传递给 simulator/emulator 上的 运行,并在设备上将应用程序标识符指定给 运行。几天后,我很困惑。

第三方依赖如下(三款app均适用):

NUnit 3.12.0
NUnitTestAdapter 2.2.0
Xamarin.UITest 3.0.3 (or 3.0.4-dev4 if I want to run against iOS 13)

据我所知,所有三个应用程序在 UI 测试方面都具有相同的设置,但其中一个在本地 运行 没有。我还应该寻找什么其他东西?

Visual Studio for Mac 8.3.5 (build 13)
xCode 11.1
Mono 6.4.0.208
Xamarin Android 10.0.3.0
Xamarin iOS 13.4.0.2
Mac OSX 10.14.6

所以这里的问题似乎是 UI 测试根本没有引用 iOS 和 Android 项目。更让人困惑的是,在 Mac 的 VS 中,我无法添加项目引用,因为它们具有不兼容的目标框架。直到我手动修改 csproj 文件以包含这些项目引用后,这个问题才得到解决。

感谢@jgoldberger 的想法!