2015-07-10 56 views
0

我正在四處搜尋,看看我想要完成的註釋是否可能。自定義@Annotation在運行時報告布爾值

基本上,我們有一大堆的TestNG的測試案例,我們是微管理

例子:

@Test 
public void reportingTest(){ 
Assert.true(false); 
} 

以上只會失敗,但我們總結在一個斷言嘗試捕捉一切。

@Test 
public void reportingTest(){ 
try { 
    Assert.true(false); 
    Report.batch(Enum.Pass, 106); 
} catch (Throwable t) { 
    Report.batch(Enum.Fail, 106, "Test case has failed"); 
    } 
} 

然而,經過數百個測試案例...有了這個嘗試catch是非常麻煩的。

我想完成這樣的

@Reporting(id=106) 
@Test 
    public void reportingTest(){ 
    Assert.true(false); 
} 

裏面的東西的註解,我將不得不捕獲失敗的斷言和發送註銷基於我的ID的能力。

謝謝!

+0

問題'可能'嗎?或者'嘿,這是我的想法,告訴我怎麼做?' – Zelldon

+0

你讀過這個嗎? http://stackoverflow.com/questions/19389808/using-annotations-for-exception-handling看起來像你可以使用的東西 – tagtraeumer

+0

非常感謝你tagtraeumer!這看起來很有趣。 和Zelldon,我想這兩者的組合..我不需要一個完整的實現示例...什麼tagtraeumer鏈接是偉大的。 – Will

回答

2

TestNG提供listeners,您正在尋找的可能是TestListener

您的註釋將從那裏提供:tr.getMethod().getConstructorOrMethod().getMethod().getAnnotation(Reporting.class)