2016-12-12 47 views
0

我有一個TestNG的@Factory創建測試類的幾個實例從框架實現ITest接口,如:TestNG的定製測試名稱

public class MyFactory { 
    @Factory 
    public Object[] tests() { 
     return new Object[]{ 
      new MyTest("first"), 
      new MyTest("third"), 
      new MyTest("second") 
     }; 
    } 
} 

public class MyTest implements ITest{ 

    private String name; 

    public MyTest(String name) { 
     this.name = name; 
    } 

    @Test 
    public void execute(){ 
     System.out.println("Done [" + name + "]"); 
    } 

    @Override 
    public String getTestName() { 
     return name; 
     } 
    } 
} 

我需要的測試名稱來識別哪些測試失敗(萬一)。

當我從IDE(IntelliJ)執行測試時,測試名稱是可以的,但是當從maven執行時,所有測試(在報告中)都被命名爲執行

Maven配置爲讀取參考MyTestFactorytestng.xml

這是Maven的日誌:

Running TestSuite 
... 
... TestNG 6.8.9beta by Cédric Beust ([email protected]) 
... 

Done [third] 
Done [second] 
Done [first] 
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.479 sec - in TestSuite 

Results : 

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0 

生成的報告:

enter image description here

任何幫助嗎?

感謝。

+0

您能分享一個maven輸出樣本嗎? – juherr

+0

創建ITest的新實現的情況如何? – RocketRaccoon

+0

@JulienHerr我已經用maven輸出和報告更新了這個問題。 – rascio

回答

0

日誌輸出將在使用Reporter.log語句的html文件(Reporter Output部分下)中可用。這將幫助您確定是否有任何執行方法失敗enter image description here

@Test 
public void execute(){ 
    System.out.println("Done [" + name + "]"); 
    Reporter.log("Test name is : " + name); //Add this line 
}