Xamarin UITest为什么在两次测试之间重新启动应用程序?

时间:2018-09-07 12:18:12

标签: c# visual-studio xamarin.uitest

为什么在使用标准xamarin uitest结构运行所有测试时,Visual Studio为什么要针对所有测试用例重新启动我的应用?

如何防止这种情况?

4 个答案:

答案 0 :(得分:1)

Xamarin UItest重新启动应用程序(并默认清除应用程序数据),以确保每个测试的环境都干净。

想象一下,测试失败。测试会使应用程序处于后续测试可能无法预期的状态。因此,随后的测试将仅因为一个测试首先失败而失败。

不建议禁用该行为,但是您可以使用

ConfigureApp
    .Android // .iOS respectively
    // ...
    .ConnectToApp();

代替

ConfigureApp
    .Android // .iOS respectively
    // ...
    .StartApp();

答案 1 :(得分:0)

您也可以尝试:

ConfigureApp
  .iOS // .Android
  .StartApp(AppDataMode.DoNotClear);

答案 2 :(得分:0)

如果使用的是NUnit,请尝试使用[TestFixtureSetUp]而不是[SetUp]。这样一来,设置即可在测试治具中执行。

([TearDown]将有助于避免出现问题,以防夹具中的一项测试失败并且不会使App返回“开始”状态)

答案 3 :(得分:0)

Xamarin.UITest 遵循 Nunit 框架。 [Setup] 属性方法在每次编写应用启动代码的测试之前调用。

如果您打算为所有测试用例只启动一次应用程序,您可以在具有 [SetUpFixture] 的类中的 [OneTimeSetUp] 属性方法中执行此操作

示例 (NUnit3)

[SetUpFixture]
public class BaseTextFixture
{

    public BaseTextFixture()
    {
    }

[OneTimeSetUp]
    public void Init()
    {
    // this method is called only one time for all tests
    }
}