java TestNG嵌套测试或测试步骤

tpxzln5u  于 2023-01-29  发布在  Java
关注(0)|答案(5)|浏览(124)

我想知道是否有可能让TestNG在它的报告中显示一些类似嵌套测试或测试步骤的东西。
问题是,我有相当大的集成测试用例,如果我能在某些步骤上将其解耦,比如说,使用类似于allure的@Step注解,那就太好了。
目前,测试用例在intellij IDEA报告中显示为一个巨大的单独条目,其中包含大量日志,这非常难以浏览和分析。

cbjzeqam

cbjzeqam1#

可以使用ExtentTest类的createNode方法,它将在主测试下创建节点。

wd2eg0qa

wd2eg0qa2#

我从来没有尝试过使用内部TestNG类,但这是可能的,我相信IntelliJ会呈现嵌套视图。你可以做一个简单的小项目来尝试它。有一个家伙似乎已经尝试了内部类在这里:http://makeseleniumeasy.com/2018/05/13/testng-tutorials-12-how-to-run-inner-testng-class-from-testng-xml/。让我知道它是否工作。不知道IntelliJ是否呈现嵌套,直到你尝试。
额外收获:如果成功,使用Gradle testng插件执行TestNG并查看HTML报告是否也呈现嵌套会很有趣。

6tr1vspr

6tr1vspr3#

内部类可用于形成组。对于一级嵌套,内部类必须是公共的。
请尝试以下操作:

public class foo {
    public class bar1 {
        @Test
        public void test11() {System.out.println("test11");}
        @Test
        public void test12() {System.out.println("test12");}
    }
    public class bar2 {
        @Test
        public void test21() {System.out.println("test21");}
        @Test
        public void test22() {System.out.println("test22");}
    }
}
py49o6xq

py49o6xq4#

fcipmucu

fcipmucu5#

现在您可以使用TestNG的groups功能,例如:

class RecordsAccessorTest {
   @BeforeMethod(groups = "NewRecordGroup")
    public void setUp() {
      // some set up for only new record creation is tested
    }

   @Test(groups = "NewRecordGroup")
   public void testNewRecordCreation_happyPath() {...}

   @Test(groups = "NewRecordGroup")
   public void testNewRecordCreation_errorPath() {...}

   @Test
   public void someOtherTestNotInGroup() {...}
   
}

相关问题