TestNG を使用してテスト スイートを実行しています。テストは Jenkins 経由で開始されます。Jenkins で TestNG プラグインを使用しています。要件の 1 つは、'critical' というカスタム属性を testng-results.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>
setAttribute がどのように機能するかを確認するために @Test で以下を試しましたが、testng-results.xml のテストに属性を追加しませんでした (何が欠けているのかわかりません。コマンドラインではなくプログラムで TestNG を実行しています)。テスト レベルで属性を追加し、スイート レベルで属性を追加する必要があるため、ITestResult.setAttribute が私の場合に役立つかどうかはわかりません。私も実装ITestListener
しましたが、うまくいきませんでした。誰かが私を正しい方向に向けることができますか?
編集1
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);
}