2

有没有办法获取当前正在执行的组的名称?

我试过了:

@BeforeMethod
public void beforeMethod(ITestContext context) {
    groups = context.getCurrentXmlTest().getIncludedGroups();
}

但这给了我当前运行方法支持的所有组,而不是当前正在执行的组。

4

2 回答 2

0

如果想知道执行@Test方法所属的第一个组名:

@BeforeMethod
    public void beforeMethod(Method method){
        Test testClass = method.getAnnotation(Test.class);
        System.out.println(testClass.groups()[0]);
    }

如果您想知道执行@Test方法所属的所有组名称:

@BeforeMethod
    public void beforeMethod(Method method){
        Test testClass = method.getAnnotation(Test.class);

        for (int i = 0; i < testClass.groups().length; i++) {
            System.out.println(testClass.groups()[i]);
        }
    }

希望这可以帮助!

于 2016-09-07T18:16:29.477 回答
0

现在回答这个问题,因为这个问题被标记在一个类似的问题中,但用例不同。因此,这可能对任何寻找答案的人都有帮助:

这是一种解决方法:而不是 get getIncludedGroups,使用getName并执行以下操作:

@BeforeMethod(groups = {"one", "two"} )
public void beforeMethod(ITestContext ctx) {
    String name = ctx.getCurrentXmlTest().getName();
    if(name.contains("GRP")) {
        String grpName = name.split("GRP-")[1];
        if(grpName.equals("one")) {
            // ......
        } else {
            // .....
        }
    }
}

于 2021-05-21T17:05:28.897 回答