Xamarin UI 测试引用 Xamarin.Android 项目抛出错误

Xamarin UI Test referencing Xamarin.Android project throws errors

我正在为我的 android 项目创建一个 Xamarin.UITest。我正在关注 Microsoft guide。一切正常,直到最后一点:

Add a project reference from the UITest project to the Xamarin.Android project:

This will allow the NUnitTestAdapter to run the UITests for the Android app from Visual Studio.

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

NU1201: Project uitest.Android is not compatible with net461 (.NETFramework,Version=v4.6.1). Project uitest.Android supports: monoandroid81 (MonoAndroid,Version=v8.1)

这很有道理,因为显然 .Net Framework 4.6.1 库对 MonoAndroid.

一无所知

我也试过将它转换为 .Net Standard 2.0 但我得到了类似的错误:

Error NU1201 Project uitest.Android is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Project uitest.Android supports: monoandroid81 (MonoAndroid,Version=v8.1)

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

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

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

    return ConfigureApp.iOS.StartApp();

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

我是不是误解了什么或者这是一个 visual studio / Xamarin 错误?

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

您通常不会在 UI-test 项目中引用您的 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。之后重新运行你的测试。