首页 > 解决方案 > 引用 Xamarin.Android 项目的 Xamarin UI 测试引发错误

问题描述

我正在Xamarin.UITest为我的 android 项目创建一个。我正在遵循Microsoft 指南。一切正常,直到最后一点:

将 UITest 项目中的项目引用添加到 Xamarin.Android 项目:

在此处输入图像描述

这将允许 NUnitTestAdapter 从 Visual Studio 运行 Android 应用程序的 UITests。

一旦我添加对 Android 项目的引用,它就会出现以下错误:

NU1201:项目 uitest.Android 与 net461 (.NETFramework,Version=v4.6.1) 不兼容。uitest.Android 项目支持:monoandroid81 (MonoAndroid,Version=v8.1)

这很有意义,因为显然.Net Framework 4.6.1库对 MonoAndroid 一无所知。

我也尝试将其转换为,.Net Standard 2.0但出现类似错误:

错误 NU1201 项目 uitest.Android 与 netstandard2.0 (.NETStandard,Version=v2.0) 不兼容。uitest.Android 项目支持:monoandroid81 (MonoAndroid,Version=v8.1)

奇怪的是,尽管有错误,该项目仍然可以构建。但是这些错误使我的自动构建 nuget 恢复失败,并出现完全相同的错误。

UI Test 引用 Android 项目的原因是为了Xamarin Test Cloud能够调用:

    if (platform == Platform.Android)
    {
        return ConfigureApp.Android.StartApp();
    }

    return ConfigureApp.iOS.StartApp();

您不能在 Xamarin 测试云中使用InstalledAppor方法ApkFile

我是否误解了什么或者这是一个视觉工作室/Xamarin 错误?

PS。我正在使用最新的 Visual Studio 版本VS 15.8.0

标签: c#androidxamarinxamarin.formsxamarin.uitest

解决方案


您通常不会在 UI 测试项目中引用您的 Android 项目。这样做的原因是:

  • 您可以测试一个只有 apk 或 ipa 的应用程序
  • 像 Test Cloud 这样的云解决方案将无法访问源代码,因此不会编译代码。

我正在使用这样的apk:

[TestFixture]
public class DroidTest
{
    const string _droidPath = "../../APK/my-app.apk";
    IApp _app;

    [TestFixtureSetUp]
    public void Setup()
    {
        _app = ConfigureApp.Android.ApkFile(_droidPath).StartApp();
    }
}

如果您在 Android 项目构建中进行了更改并创建了一个新的 apk。之后重新运行您的测试。


推荐阅读