2012-05-06 2 views
1

Я использую TestNG для запуска своих тестовых наборов, и тесты запускаются через Jenkins. Я использую плагин TestNG в Jenkins. Один из наших требований является добавление пользовательского атрибута с именем 'критическим' для 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 а не через командную строку). Я не уверен, что 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); 
} 
+0

Не следует ли вызывать .getCurrentTestResult после теста, например, в аннотированном методе AfterTest? – djangofan

ответ

1

Вы должны видеть эти атрибуты в testng- results.xml, хотя они будут находиться в отдельном разделе, а не как атрибут тега <testng-results>.

+0

Я обновил вопрос с помощью своего кода. В testng-results.xml я до сих пор не вижу критического тега в testng-results.xml. Я использую testng 6.5.1. Я что-то пропустил? Благодаря! – nilesh

+0

Мне тоже очень любопытно ответить на этот вопрос ... – djangofan

Смежные вопросы