2012-12-11 24 views
1

我有一個測試類中的5個測試方法,用@Test註釋。 我也有@Before@After方法。有沒有辦法跳過只用於第一個Test方法的@After方法,然後運行它?有一個JUNIT註釋可以跳過一種測試方法的方法之後嗎?

+0

你試圖通過跳過'@ After'方法實現什麼功能? – RJo

+3

據我所知,你不能跳過執行用@After標記的方法。在做測試可讀性之前,您應該考慮三次。然而,如果你真的想要這樣做,你可以在你的測試類中添加一個'boolean runAfter'字段,並在第一個方法中將其設置爲'false'。此外,在'@ After'方法中,添加if(runAfter){/ *代碼之後* /}'。 – RJo

+0

非常感謝。這真的有幫助。還需要知道當我運行幾個測試時,與其他測試方法相比,第一個測試總是需要更多時間才能執行。這有什麼理由嗎? – Mercenary

回答

2
  1. 如果您希望它具有通用性,請在@Before中將變量「afterToBeLaunched」設置爲false。並且在每個需要@After的測試中,將其設置爲true。當然,在@After的開頭檢查它,如果它是假的,return的方法。
  2. 如果您在4.7版之後使用JUnit,請使用@Rules。 (Apply '@Rule' after each '@Test' and before each '@After' in JUnit)您可以使用Rule而不是@After並使用TestName,您可以在那裏讀取測試的名稱,並根據當前結束的測試執行完成操作。
相關問題