我正在使用Data Provider,并且报告在TestNG报告的所有测试中显示相同的方法名称。
static String TC_Name;
@DataProvider(name="SampleTestData")
public Object[][] testData() {
return new Object[][]{
{"TestCase1","Description1",""},
{"TestCase2","Description2",""},
{"TestCase3","Description3",""},
//{"TestCaseID_2","TC_Description","Negative",""},
};
}
@Test(dataProvider="SampleTestData", alwaysRun = true,testName="SampleTest")
public void testCaseInitialization(String testcaseID,String testcaseName, String Temp) {
Log.startTestCase(testcaseID + "_" + testcaseName);
TC_Name= testcaseID;
}
现在我想要的输出是" TestCase(1-3)"。但我得到" testCaseInitialization"在报告中。
我尝试过以下黑客攻击方式。:
@AfterMethod(alwaysRun = true)
public void setResultTestName(ITestResult result) {
try {
BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
f.setAccessible(true);
f.set(baseTestMethod, TC_Name);
} catch (Exception e) {
// ErrorMessageHelper.getInstance().setErrorMessage(e);
Reporter.log("Exception : " + e.getMessage());
}
}
但这给了我" TestCase3"在所有方法名称中。
可以请任何人建议,我怎么能破解报告。
答案 0 :(得分:0)
如果要检索" TestCase(1-3)"您可以仅使用@Test
注释方法自定义方法名称。然后将其应用于测试方法。报告调用@Test
方法的方法名称。