如何在TestNG中获取测试组名称

时间:2015-07-22 06:58:36

标签: java selenium testng

我是testNG的新手,我有以下代码:

@BeforeMethod
public void getGroup(ITestAnnotation annotation){
    System.out.println("Group Name is --" + annotation.getGroups()) ;
}

@Test(groups = { "MobilSite" })
public void test1(){
    System.out.println("I am Running Mobile Site Test");
}

我想在方法之前使用组名,我尝试使用ITestAnnotation但是当我运行测试时我得到以下错误

Method getGroup requires 1 parameters but 0 were supplied in the @Configuration annotation.

请帮助我从XML传递参数?

3 个答案:

答案 0 :(得分:4)

使用反射方法获取测试组,如下所示:

@BeforeMethod
public void befMet(Method m){
        Test t = m.getAnnotation(Test.class);
        System.out.println(t.groups()[0]);//or however you want to use it.
}

答案 1 :(得分:1)

如果您想知道执行@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]);
        }
    }

答案 2 :(得分:-1)

如果我理解正确,您希望将group添加到beforeMethod。

@BeforeMethod(groups = {"MobilSite"}, alwaysRun = true)