Xamarin UI Test, ссылающийся на проект Xamarin.Android, выдает ошибки

Я создаю Xamarin.UITest для своего проекта Android. Я следую Руководство Microsoft. Все работает нормально вплоть до последнего пункта:

Добавьте ссылку на проект из проекта UITest в проект Xamarin.Android:

введите описание изображения здесь

Это позволит NUnitTestAdapter запускать UITests для приложения Android из Visual Studio.

Как только я добавляю ссылку на проект 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();

Вы не можете использовать методы InstalledApp или ApkFile в тестовом облаке Xamarin

Я что-то неправильно понял или это ошибка Visual Studio / Xamarin?

PS. Я использую последнюю версию Visual Studio VS 15.8.0


person user1    schedule 15.08.2018    source источник


Ответы (1)


Обычно вы не будете ссылаться на свой Android-проект в своем проекте UI-test. Причина этого в том, что:

  • Вы можете протестировать приложение, для которого установлен только 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. После этого повторно запустите ваши тесты.

person tequila slammer    schedule 16.08.2018
comment
у вас есть способ сгенерировать apk после внесения изменений? т.е. при разработке и добавлении AutomationId и последующей перестройке apk - person user1; 21.08.2018