如何为TestNG.xml中的类提供别名

时间:2016-09-19 10:19:15

标签: testng

我有如下的testng.xml:

<classes>
   <class name="com.tecnotree.clm.tests.CorporateHybridRegistrationTest" />
   <class name="com.tecnotree.clm.tests.CorporatePostpaidRegistrationTest" />
</classes>

我在@BeforeClass获取此类名称并启动extentReport

@BeforeClass(alwaysRun = true)
    public void initializeLog()  throws Exception
    {
        extentLog = extentReport.startTest(this.getClass().getName());
        extentLog.log(LogStatus.INFO,"Started Test Execution for "+this.getClass().getName());

    }

我正在得到一切正确的,现在问题是testname非常日志,它同样启动,我想给出我自己的名字。

例如: - 测试名称来自com.tecnotree.clm.tests.CorporatePostpaidRegistrationTest

任何人,请帮助如何做到这一点

我希望测试名称如Corporate Prepaid Registration Test

1 个答案:

答案 0 :(得分:1)

com.tecnotree.clm.tests.CorporatePostpaidRegistrationTest就是这样,因为你要求它:

  

this.getClass()。的getName()

但您可以想象为自定义名称设置另一个自定义逻辑。例如,在伪代码中:

@ExtentReport(name="Corporate Prepaid Registration Test")
public class CorporatePostpaidRegistrationTest {
    [...]

    @BeforeClass(alwaysRun = true)
    public void initializeLog() throws Exception {
        ExtentReport report = this.getClass().getAnnotation(ExtentReport.class);
        String testName = report != null ? report.name() : this.getClass().getName();
        extentLog = extentReport.startTest(testName);
        extentLog.log(LogStatus.INFO,"Started Test Execution for " + testName);
    }
}

编辑:@ExtentReport是自定义注释,并不存在于某处。你必须自己创建它。