当前位置: 首页 > 知识库问答 >
问题:

testNG中@beforeTest方法的执行顺序

阮选
2023-03-14

我正在尝试使用testng.xml执行testcases。我已经将所有的测试运行类放在一个测试中。在执行时,我注意到第二类(仪表板类)的@beforeTest方法首先执行。我希望执行所有类的@beforeTest方法,以与testng.xml文件中的类相同的执行顺序执行。请看下面的图片。

对于我在提到的类中使用的所有@beforeTest和@beforeClass我都使用了waysrun=true

共有1个答案

亢嘉茂
2023-03-14

可以使用属性DependonMethods形成注释。

这个小测试

public class StackOFTest {

    @BeforeTest
    public void first() {
        System.out.println("First");
    }

    @BeforeTest(dependsOnMethods = {"first"})
    public void second() {
        System.out.println("Second");
    }

    public static class SubTest extends StackOFTest {

        @BeforeTest(dependsOnMethods = "second")
        public void subFirst() {
            System.out.println("- First");
        }

        @Test
        public void test() {
            System.out.println("Test");
        }
    }
}

产出:

First
Second
- First
Test
 类似资料:
  • 我有一个包-'脚本' 根据剧本,我有两个类别——甲和乙 在一个类中,我有3个方法(@Test)按顺序编写- 在B班我有一种方法- TestNG. XML 在执行时——作为TestNG套件——右键单击TestNG XML并选择Run as a TestNG Suite 类B首先执行-这是因为类B中的@Test没有指定优先级,因此成为最高优先级 有没有办法让@Test的优先级只在类中起作用?为什么Te

  • 我们从官方的TestNG文档中了解到: 在调用当前类中的第一个测试方法之前,将运行带注释的方法。 将在运行属于标记中的类的任何测试方法之前运行带注释的方法。

  • 该程序的输出: 是: 为什么当 开始时 不是 1?

  • 我试图使用Selenium和TestNG进行测试设计,我将每个@test放在一个单独的类中,并对所有类使用once@beforeSuite&@afterSuite,原因是: 代码易于维护 数据驱动,以便能够选择通过文件运行的类。 案例1类: 注意:如果上面的代码在套件中使用单个运行,它就可以正常工作。 问题是它是否像下面的配置那样并行运行。

  • 问题内容: 我们从TestNG官方文档中知道: 带注释的方法将在调用当前类中的第一个测试方法之前运行。 带注释的方法将在运行属于标签内部的类的任何测试方法之前运行。 上面的两个TestNG批注在功能上看起来都很相似。谁能解释这个独特的区别? 问题答案: SeleniumAbstractTest.class MyTestClass1.class MyTestClass2.class 如果您具有以下测

  • 我有4个@Test方法,希望每个方法都运行3次。我想在12个线程中同时执行所有这些。 我创建了一个testng。像这样的xml文件 如果我设置并行="方法",TestNG在Test1的4个线程中执行4个测试方法,之后对Test2执行相同的操作,然后对Test3执行相同的操作。但是我不想在运行Test2之前等待Test1完成。TestNG能够运行Test1、Test2 有没有办法告诉TestNG不要