私は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);
}
AfterTest注釈付きメソッドなど、テスト後に.getCurrentTestResultを呼び出すべきではありませんか? – djangofan