Открытая активность в Xamarin Droid UITest

Я начал использовать Xamarin UITest для проверки поведения моего приложения. Я хотел сделать тесты логически разделенными (под этим я подразумеваю, что если один тест не пройден, другой не должен проваливаться из-за первого, они должны быть независимыми). В моем приложении есть несколько действий, и я не смог найти в документации, как открыть определенное действие.

Самое близкое, что я смог найти, было:

[SetUp]
public void BeforeEachTest()
{
    app = ConfigureApp.Android.LaunchableActivity("MyActivity").StartApp ();
}

Но ничего не произошло. Я могу сделать это? Есть ли обходной путь?

Спасибо


person Daniel    schedule 27.06.2015    source источник


Ответы (2)


Очень поздний ответ, но я подумал, что выложу его, чтобы другие могли его найти. Чтобы запустить приложение с использованием определенного действия, UITest требует две части информации: имя приложения (или путь к файлу APK) и имя действия.

Вызов StartApp() в AndroidConfigurator будет выглядеть следующим образом для приложения, которое уже установлено на устройстве или в эмуляторе:

app = ConfigureApp
    .Android
    .InstalledApp("packagename")
    .LaunchableActivity("activityname")
    .StartApp();

Или как показано ниже для файла APK:

app = ConfigureApp
    .Android
    .ApkFile("filename")
    .LaunchableActivity("activityname")
    .StartApp();
person Devneval    schedule 14.11.2015

попробуйте этот код:

if (platform == Platform.Android)
{
    string currentFile = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath;
    FileInfo fi = new FileInfo(currentFile);
    string dir = fi.Directory.Parent.Parent.Parent.FullName;
    var PathToAPK = Path.Combine(dir, "LetsGetNative.Droid", "bin", "Debug", "LetsGetNative.Droid.apk");
    app = ConfigureApp.Android.ApkFile(PathToAPK).WaitTimes(new WaitTimes()).EnableLocalScreenshots().StartApp();
}
else
{
    app = ConfigureApp.iOS.StartApp();
}
person user1    schedule 30.06.2015
comment
я не думаю, что вы поняли мой вопрос. Я хочу открыть действие, которое не является запуском, ваш код просто запускает его нормально - person Daniel; 01.07.2015
comment
Вы можете указать активность, которую хотите протестировать, как Launch Activity? Вы пробовали ставить точки останова в MyActivity? Ваш код выглядит нормально - person user1; 01.07.2015
comment
Это решение не очень хорошее, потому что для каждого теста экрана, который я хотел сделать, мне пришлось бы менять экран запуска, а также мне приходилось бы постоянно изменять код для запуска исходного проекта. Тесты не должны мешать коду - person Daniel; 01.07.2015