我正在使用TestNG來運行我的測試套件,並通過Jenkins啓動測試。我在Jenkins使用TestNG插件。我們的一個要求是所謂的 '關鍵' 的自定義屬性添加到TestNG的-results.xml自定義TestNG結果xml
當前TestNG的,爲result.xml
<testng-results skipped="0" failed="3" total="5" passed="2">
......
</testng-results>
TestNG的預期,爲result.xml
<testng-results skipped="0" failed="3" total="5" passed="2" critical="2">
......
</testng-results>
我在@Test下面試過,看看setAttribute是如何工作的,但它沒有在testng-results.xml中的測試中添加任何屬性(不知道我缺少什麼,我正在運行TestNG programat而不是通過命令行)。我不確定ITestResult.setAttribute在我的情況下是否有用,因爲我猜它會在測試級別添加屬性,我需要在套件級別添加屬性。我也執行了ITestListener
但沒有成功。我錯過了什麼,有人能指引我朝着正確的方向嗎?
EDIT1
TestNGRunner類的代碼運行TestNG的
XmlSuite suite = new XmlSuite();
suite.setName("Custom Report");
XmlTest test = new XmlTest(suite);
test.setName("customreport");
classes = new ArrayList<XmlClass>();
String [] runSuites = {"com.test.Testing"};
for(String asuite:runSuites)
classes.add(new XmlClass(asuite));
test.setXmlClasses(classes);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
com.test.Testing類
@Test
public void test() {
System.out.println("running my test");
ITestResult result = Reporter.getCurrentTestResult();
result.setAttribute("critical", 10);
}
不應該在測試之後調用.getCurrentTestResult,例如AfterTest註釋的方法嗎? – djangofan