2011-06-12 30 views
2

我想加快junit測試,並考慮使用​​3210。junit:如何避免使用forkMode =「once」時的誤報?

由於junit seems to use a shared classloader對於一個過程中的所有測試,除了假陰性(這是好事,因爲它暴露靜態耦合),也可能出於同樣原因的誤報。

我有兩個問題對此:

  1. 是它在某種程度上可以改變在JUnit中classloader行爲的強制執行每個測試用例一個新的類加載器?我認爲能夠在兩個部門中運行junit以避免誤報和否定是理想的。

  2. 是很容易可以隨機化試驗爲了減少誤報(使用Ant)

回答

1

據我知道你想要的是不支持的,但在任何情況下的概率,我認爲你應該重新考慮你的方法:你應該讓你的代碼更加可測試,所以它不依賴於新的JVM/Classloader。

但是,如果你不能/不會 - 你最好的行動方式是分叉。

+1

你說得對,我的代碼不應該綁在新的jvm/classloader上。這正是我想要歸檔的內容。但是,由於誤報,我可能沒有意識到測試是綁在一起的,我會得到一切正常的錯覺 - 直到單獨運行有問題的測試(或客戶抱怨) – MRalwasser 2011-06-12 11:08:05

+1

您應該嘗試讓您的測試確定起點你的測試是正確的。 – RonK 2011-06-12 11:59:50

+0

RonK,我不同意。對於您編寫的每個Test類,這是很多重複的代碼(我們有數百個遺留測試,我們不會重寫)。這是框架可以/應該爲你做的事情。 – JimN 2012-07-02 20:23:40

相關問題