C# NUnit UITest按彼此的顺序运行

C# NUnit UITest按彼此的顺序运行,c#,visual-studio,xamarin.forms,nunit,xamarin.uitest,C#,Visual Studio,Xamarin.forms,Nunit,Xamarin.uitest,问题: 我有一个带有NUnit框架的Xamarin.UITest项目设置。我知道使用[Test,Setup]可以让我在每次测试之前运行设置测试。我想知道是否有一种方法可以在每次测试之前运行我的[Test,Setup],然后在设置停止的确切页面上运行后续的测试 原因: 我有大约6或7个UITests测试应用程序中的特定页面。我正在尽量减少冗余,所以任何将我导航到该页面的自动化(我相信)都应该在单独的方法中完成一次;i、 e:设置方法 我已经搜索了S.O.和NUnit.org,我只是不知道如何做我的

问题:

我有一个带有NUnit框架的Xamarin.UITest项目设置。我知道使用[Test,Setup]可以让我在每次测试之前运行设置测试。我想知道是否有一种方法可以在每次测试之前运行我的[Test,Setup],然后在设置停止的确切页面上运行后续的测试

原因:

我有大约6或7个UITests测试应用程序中的特定页面。我正在尽量减少冗余,所以任何将我导航到该页面的自动化(我相信)都应该在单独的方法中完成一次;i、 e:设置方法


我已经搜索了S.O.和NUnit.org,我只是不知道如何做我的具体要求。请让我知道!谢谢

您可以使用[OneTimeSetup]在类中的所有测试之前运行。 您可以使用[Setup]运行类中的每个测试。 您可以使用[TearDown]在类中的每个测试之后运行

[TestFixture]
public class Mytests
{
   [OneTimeSetup] 
   public void ThisWillRunBeforeAllTests()
   { }

   [Setup]
   public void ThisWillRunBeforeEachTest()
   { }

   [TearDown]
   public void ThisWillRunAfterEachTest()
   { }

   [Test]
   public void ATest()
   { }

抱歉,需要第二个答案,但您似乎想:

public class MyTest
{
    [Test]
    public void Test1()
    {
        Setup1();
        DoSomeTests();
    }

     [Test]
    public void Test2()
    {
        Setup1();
        Setup2();

        DoSomeTests();

    }

    private void Setup1()
    {
    }
    private void Setup2()
    {

    }


 }

将按-test@PavelAnikhouski正当1.(设置->测试),2。(设置->测试),3。(设置->测试)。。。。每次测试开始时,它不会从设置停止的位置开始。我怎样才能做到这一点呢?看看吧。。。(一次性设置(1.(设置->测试->拆卸),2.(设置->测试->拆卸),3.(设置->测试->拆卸))。。。。每次测试开始时,它不会从设置停止的位置开始。我怎样才能做到你做不到的。单元测试不是这样工作的。如果您想要这种功能,只需使用一个[test]并从中调用每个子“test”。如果测试的任何部分失败,整个测试都会失败,但这可能正是你想要的,因为后续部分可能需要之前的一个(失败的)测试才能成功,所以它无论如何都不会工作。尼尔,这很有意义。事实上,这与我最初尝试时所做的非常相似——我只是不确定是否有“更好”的方法。谢谢你的详细解释。