2014-02-14 101 views
4

我想爲JUnit中的測試運行創建自定義html報告。我所面臨的問題是在所有測試完成後釋放資源並關閉標籤。在JUnit中運行所有測試後調用方法

我保持一個FileChannel打開寫入報告。由於每個測試都應該是帶有行的表,並且有數百個測試,所以我不想打開和關閉每個測試的通道。這裏出現的問題是測試組織 - 我有嵌套套件,所以testRunFinished不是一個選項(指的是單套房,不是所有的測試,我看到了this question)。 TestWatcher也不會幫助我,因爲它只涉及單一測試。

使用的工具:maven 3.0.5,ff webdriver,junit 4.11。

我正在考慮兩個方案: 1)每次測試運行 2開閉通道)覆蓋敲定(),使其關閉通道

他們沒有一個似乎很......我已經搜查通過很多頁面,但沒有人似乎有我有同樣的問題。

更漂亮的解決方案?

+0

乾淨** ** TestNG的解決方案可以在這裏找到:http://stackoverflow.com/a/26381858/1857897 – dedek

回答

5

是的,在這裏看到(Before and After Suite execution hook in jUnit 4.x):

@RunWith(Suite.class) 
@SuiteClasses({Test1.class, Test2.class}) 
public class TestSuite { 
    @BeforeClass 
    public static void setUp() { 
     System.out.println("setting up"); 
    } 

    @AfterClass 
    public static void tearDown() { 
     System.out.println("tearing down"); 
    } 
} 
+1

好了,但是這需要每個「主套件」都有一個註解爲@AfterClass的方法。有更通用的解決方案嗎? –

+0

如何爲專門的HTML報告創建一個單獨的大型測試套件,以及如何使用較小的測試套件進行「正常」測試? – Smutje

+0

這正在改變業務需求,但可能是唯一的選擇......而實際上我沒有想到,所以謝謝你:) –