Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xamarine.uitest中每次运行测试时停止安装应用程序_C#_Xamarin_Automation_Xamarin.android_Xamarin.uitest - Fatal编程技术网

C# 如何在xamarine.uitest中每次运行测试时停止安装应用程序

C# 如何在xamarine.uitest中每次运行测试时停止安装应用程序,c#,xamarin,automation,xamarin.android,xamarin.uitest,C#,Xamarin,Automation,Xamarin.android,Xamarin.uitest,我不熟悉移动测试,正在android上使用Xamarine.UITest测试本机应用程序,我正在执行多个BDD场景。每次我运行测试时,它都会再次安装应用程序,我会丢失以前场景创建的数据。当应用程序已经安装并检查是否已安装时,我如何停止安装应用程序?跳过安装并仅启动应用程序。下面是我用来安装应用程序并返回IApp的代码。谢谢你的调查 public static IApp StartApp(Platform platform) { if (platform == Settings.Platf

我不熟悉移动测试,正在android上使用Xamarine.UITest测试本机应用程序,我正在执行多个BDD场景。每次我运行测试时,它都会再次安装应用程序,我会丢失以前场景创建的数据。当应用程序已经安装并检查是否已安装时,我如何停止安装应用程序?跳过安装并仅启动应用程序。下面是我用来安装应用程序并返回IApp的代码。谢谢你的调查

public static IApp StartApp(Platform platform)
{
    if (platform == Settings.Platform)
    {
        return ConfigureApp
                .Android
                .InstalledApp(Settings.AUTPackageName)
                .StartApp();
    }
    return ConfigureApp
            .iOS
            .StartApp();
}

因此,我遇到了另一个问题——我在第一次加载时有一些不同的运行行为,所以我想强制它有时以干净的方式安装

我发现Android和iOS设备在这方面有不同的行为。对于Android,使用InstalledApp将始终重建应用程序,它将根据安装的版本进行检查,如果不同,则安装新版本。数据丢失或缓存受
AppDataMode
影响

因此,如果问题是应用程序的构建,因为它在速度较慢的机器上可能会很慢,我建议使用预构建的APK文件来运行测试,使用
.ApkFile(“”)而不是
.InstalledApp

如果担心的是数据丢失(这更像你的问题),那么你应该采取以下措施:

    {
        _app = ConfigureApp
                .Android
                .InstalledApp(Settings.AUTPackageName)
                .StartApp(AppDataMode.DoNotClear);
    }

iOS是另一种野兽,但我认为您在这里特别关注Android。

您是否尝试过在应用程序初始值设定项中使用AppDataMode.DoNotClear?类似这样的内容:app=AppInitializer.StartApp(platform,Xamarin.UITest.Configuration.AppDataMode.DoNotClear)@Saamer谢谢你的回复。我尝试了上面的代码,然后得到错误“没有重载方法”StartApp“接受两个参数”。因此,去掉了平台参数,只提供了一个,但对于它安装和删除前一个场景数据的每个测试:(是的,根据我个人的知识和经验,它总是会重新安装,但也许你可以在Xamarin UI测试报告中创建一个问题,或者在Twitter上询问Brmininck brandon Minnick@brandon Minnick?谢谢@Saamer提出它:)