为什么在使用标准xamarin uitest结构运行所有测试时,Visual Studio为什么要针对所有测试用例重新启动我的应用?
如何防止这种情况?
答案 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
}
}