当我执行我的testNG项目时,它混合了我基于优先级在同一<test>下添加的不同类的所有测试。我该如何编码,以便在进入下一类之前,我需要按优先级顺序在第一类上运行所有方法?

 <test name="test1">
    <classes>


        <class name="class1" />
        <class name="class2" />

    </classes>

</test>


编辑于16Dec2019:

这是我的示例代码:

第1类:

public class LearningTestNG extends masterClass
   {

   @Test
   public void test()
      {
      System.out.println("Priority 0 (Default in Class 1)");
      }

   @Test(priority = 1)
   public void test2()
      {
      System.out.println("Priority 1 (Class 1)");
      }

   @Test(priority = 0)
   public void test3()
      {
      System.out.println("Priority 0 (Class 1)");
      }

   @Test(priority = 1)
   public void atest4()
      {
      System.out.println("Priority 1 (Class 1)");
      }

   }


第2类:

public class LearningTestNGTest2 extends masterClass
   {

   @Test(priority = 0)
   public void testin_LearningTestNGTest2_Class()
      {
      System.out.println("Priority 0 (Class 2)");
      }

   }


XML:



<classes>

    <class name="testclasses.LearningTestNG" />
    <class name="testclasses.LearningTestNGTest2" />

</classes>




输出:

[RemoteTestNG] detected TestNG version 6.12.0

Priority 0 (Default in Class 1)
Priority 0 (Class 1)
Priority 0 (Class 2)
Priority 1 (Class 1)
Priority 1 (Class 1)

===============================================
suiteNameGiveninXML
Total tests run: 5, Failures: 0, Skips: 0
===============================================

最佳答案

在class1中,如果在class1的@Test下使用priority = 1,然后使用2,然后是3,依此类推,则将首先执行优先级为1,2,3 ...的Test方法,然后将控件移至class2 class1以测试名称=“ test1”完成。

09-15 14:48