2012-05-06 21 views
1

私はTestNGを使用してテストスイートを実行しており、テストはJenkinsから開始されます。私はJenkinsでTestNGプラグインを使用しています。私たちの要件の一つは、TestNGの-results.xmlTestNGの結果をカスタマイズするxml

現在のTestNG-result.xml TestNGの-result.xml

期待

<testng-results skipped="0" failed="3" total="5" passed="2"> 
...... 
</testng-results> 

に '重要' と呼ばれるカスタム属性を追加することです

<testng-results skipped="0" failed="3" total="5" passed="2" critical="2"> ...... </testng-results> 

私はsetAttributeがどのように動作するかを見るために@Testの下で試しましたが、testng-results.xmlのテストに属性を追加しませんでした(TestNG-program.xmlを実行しています倫理的であり、コマンドラインではありません)。 ITestResult.setAttributeがテストレベルで属性を追加すると思われ、スイートレベルで属性を追加する必要があると思われるため、私の場合はITestResult.setAttributeが役立つかどうかはわかりません。私もITestListenerを実装しましたが、成功しませんでした。私は何かが欠けている、誰かが正しい方向に私を指すことができますか?コードでTestNGの実行

EDIT1

TestNGRunnerクラス

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

AfterTest注釈付きメソッドなど、テスト後に.getCurrentTestResultを呼び出すべきではありませんか? – djangofan

答えて

1
あなたはtestng-でこれらの属性を見てする必要があります

results.xml <testng-results>タグの属性ではなく、独自のセクションになります。

+0

私のコードで質問を更新しました。 testng-results.xmlでは、私はまだtestng-results.xmlにクリティカルタグが表示されません。私はtestng 6.5.1を使用しています。私は何か不足していますか?ありがとう! – nilesh

+0

私はここの答えについても非常に興味があります... – djangofan

関連する問題