Тест пользовательского интерфейса xamarin - невозможно загрузить собственный путь APK, на который я указываю

Я хочу запустить тест пользовательского интерфейса REPL на собственном Android APK, указав путь к APK со следующим кодом.

public void BeforeEachTest()
{
    app = ConfigureApp.Android
          .ApkFile("C:/app-debug.apk")
          .StartApp():
}

public void AppLaunches()
{
    app.Repl();
}

Но во время выполнения теста он всегда будет загружать тест, как показано ниже, а это не тот путь, который я установил.

Загрузка тестов из testing\Xamarin Testing\AndroidTest\AndroidTest\bin\Debug\AndroidTest.dll

консоль REPL не открывается, и мой выбранный APK не тестируется, и сообщений об ошибках нет, что мне делать?

Я не нашел никакого связанного решения.

Я установил: NUnit {2.6.4}, NUnit3TestAdapter {3.7.0}, NUnitTestAdapter {2.0.0} и Xamarin.UITest {2.0.5.1591-dev}


person IknowInoobiebutInoChoice    schedule 14.02.2017    source источник
comment
Пожалуйста, замените изображение вашего кода текстом вашего кода. Доступен инструмент форматирования. Помните, что изображения несовместимы с буфером обмена, программами чтения с экрана или поисковыми системами.   -  person halfer    schedule 14.02.2017
comment
Сообщение об ошибке «Загрузка тестов» не связано с проблемой, с которой вы столкнулись, потому что оно указывает на библиотеку DLL «Тесты», а не на APK. Я думаю, проблема может быть в том, что ваш путь к файлу APK имеет неправильный формат. Не могли бы вы вместо этого попробовать /app-debug.apk?   -  person user62171    schedule 15.02.2017


Ответы (2)


Вы заметите, что синтаксис // в приведенном ниже пути работает для моих тестов пользовательского интерфейса. Почему бы вам не попробовать C://whateverfolderyourapkisin/app-debug.apk.

 if (platform == Platform.Android)
        {

            var path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
            path = path.Substring(6);
            path = path.Replace("UITest", "My_AppFolder_PCL\\My_AppFolder_PCL.Droid");
            path = path + "/com.mycompany.myapp.apk";
            path = path.Replace("\\", "//");



            return ConfigureApp
                .Android
                .EnableLocalScreenshots()
                .ApkFile(path)
                .StartApp();
        }
person ClintL    schedule 16.02.2017

Более элегантный способ сделать это:

 if (platform == Platform.Android)
 {

            var path = System.AppDomain.CurrentDomain.BaseDirectory;

            path = Directory.GetParent(path).Parent.Parent.Parent.FullName;
            path = Path.Combine(path, "Droid/bin/Release/app-Signed.apk");

            return ConfigureApp
                .Android
                .EnableLocalScreenshots()
                .ApkFile (path)
                .StartApp();
 }
person Rudy Spano    schedule 18.07.2018