【问题标题】:Xamarin UI Test referencing Xamarin.Android project throws errors引用 Xamarin.Android 项目的 Xamarin UI 测试引发错误
【发布时间】:2019-01-22 13:10:22
【问题描述】:

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

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

这将允许 NUnitTestAdapter 为 来自 Visual Studio 的 Android 应用。

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

NU1201:项目 uitest.Android 与 net461 不兼容 (.NETFramework,版本=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,版本=v2.0)。项目 uitest.Android 支持: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 方法

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

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

【问题讨论】:

    标签: c# android xamarin xamarin.forms xamarin.uitest


    【解决方案1】:

    您通常不会在 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。之后重新运行测试。

    【讨论】:

    • 修改后有办法生成apk吗?即在开发和添加AutomationId's 然后重建apk时
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    相关资源
    最近更新 更多