引用Xamarin.Android项目的Xamarin UI测试会引发错误

时间:2018-08-15 16:10:05

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

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

  

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

     

enter image description here

     

这将允许NUnitTestAdapter运行UITests   来自Visual Studio的Android应用。

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

  

NU1201:Project 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 Project uitest.Android与不兼容   netstandard2.0(.NETStandard,Version = v2.0)。安卓项目   支持: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

1 个答案:

答案 0 :(得分: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。之后,重新运行测试。