1

TestNG を使用してテスト スイートを実行しています。テストは Jenkins 経由で開始されます。Jenkins で TestNG プラグインを使用しています。要件の 1 つは、'critical' というカスタム属性を testng-results.xml に追加することです。

現在の testng-result.xml

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

予想される te​​stng-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);
}
4

2 に答える 2

1

これらの属性は testng-results.xml に表示されているはずですが、<testng-results>タグの属性としてではなく、独自のセクションにあります。

于 2012-05-07T06:41:37.183 に答える