TestNG执行顺序-it';这是来自不同班级的混合测试

TestNG执行顺序-it';这是来自不同班级的混合测试,testng,testng.xml,Testng,Testng.xml,TestNG在执行时混合了来自不同类的测试。 每个类都有一些测试。而不是像这样执行: 第一个测试类第一个测试 第一个测试类第二个测试 第一类第三类 第二个测试类第一个测试 SecondTestClass secondTest 第二类第三类 它是这样执行的,混合了来自每个类的测试: 第一个测试类第一个测试 第二个测试类第一个测试 第一个测试类第二个测试 SecondTestClass secondTest 第一类第三类 第二类第三类 这是我的XML: <suite name="Mobile

TestNG在执行时混合了来自不同类的测试。 每个类都有一些测试。而不是像这样执行:

  • 第一个测试类第一个测试
  • 第一个测试类第二个测试
  • 第一类第三类

  • 第二个测试类第一个测试

  • SecondTestClass secondTest
  • 第二类第三类
  • 它是这样执行的,混合了来自每个类的测试:

  • 第一个测试类第一个测试
  • 第二个测试类第一个测试
  • 第一个测试类第二个测试
  • SecondTestClass secondTest
  • 第一类第三类
  • 第二类第三类
  • 这是我的XML:

    <suite name="Mobile App Automation" verbose="1">
    <test name="Android">
        <parameter name="OS" value="android"/>
        <parameter name="remote" value="true"/>
        <classes>
            <class name="Test.FirstTestClass"/>
            <class name="Test.SecondTestClass"/>
        </classes>
    </test>
    
    
    

    我的所有测试都设置了优先级参数。但它应该只影响类内的测试,而不是现在正在进行的项目的所有测试


    有什么提示吗?

    当代码从testng文件运行时,所有优先级为0的测试用例都会先运行,然后再运行优先级为1的测试,依此类推。因此,如果您希望测试用例按特定顺序运行,则需要从所有类的测试中删除优先级。
    在testng文件中,您还可以在
    行中添加preserve order=“true”,然后第一个类中提到的所有测试将首先运行,然后第二个类中的测试将运行,但如果类中设置了优先级,则测试的顺序将根据优先级运行。

    因此,您需要首先删除优先级,然后可以使用
    preserve order=“true”
    来维护类的执行顺序。

    但是在另一个项目中,我们有相同的配置,它的行为与此不同。可能吗?我们如何能够为给定类内的测试而不是整个项目设置优先级?这是不可能的,因为testng行为是一致的,我过去也遇到过同样的问题。当从testngxml执行测试时,测试是根据整体上的优先级运行的,而不仅仅是类级别。是否存在需要优先级的特定原因,因为如果类中的某些测试相互依赖,那么您也可以在类中使用dependsOn参数,这也可以解决按特定顺序运行执行的目的。但是,如果您的所有测试都是独立的,那么您需要删除优先级。谢谢Sameer。我最后做的是在XML中为我想要执行的每个测试类创建不同的标记。正如我所预料的,它现在可以工作了。很好,很高兴能帮助你。如果答案对您有帮助,请向上投票并接受答案:)@Max感谢您接受答案,尽管我仍然建议从测试中删除优先级,如果您的测试相互依赖,请使用dependsOn参数,因为在将来,您的测试数量将增加,这将使您很难在testng xml中输入每个测试,所以只提到类名会容易得多。