近期,JUnit 5以EPL-2.0許可的方式發(fā)布。根據(jù)用戶指南,JUnit 5的主要目標(biāo)之一,就是使JUnit更易于做進(jìn)一步的提高和改進(jìn)。
大量在JUnit 4中最初作為內(nèi)部構(gòu)建而添加的接口,已被那些編寫外部擴(kuò)展(Extension)和構(gòu)建工具的編碼人員所使用。這使得改進(jìn)JUnit 4尤為困難,時(shí)常是無(wú)法實(shí)現(xiàn)的。
為解決該問題,JUnit 5中引入了一種用于所有公開接口、類和方法的預(yù)定生命周期。
JUnit由三個(gè)子項(xiàng)目組成,分別是JUnit Platform、JUnit Jupiter和Junit Vintage。
JUnit Platform定義了開發(fā)測(cè)試框架的TestEngine API,它是加載測(cè)試框架的基礎(chǔ)。
JUnit Jupiter由新的編程模型和擴(kuò)展(Extension)模型組成,用于編寫JUnit 5中的測(cè)試和擴(kuò)展。
JUnit Vintage提供了運(yùn)行JUnit 3和JUnit 4測(cè)試所用的TestEngine。
根據(jù)用戶指南,在JUnit 5中引入了一種稱為“Launcher”的概念。Launcher用于發(fā)現(xiàn)、過(guò)濾和執(zhí)行測(cè)試。第三方軟件庫(kù)可以提供定制的TestEngine方式,以插件形式加入JUnit Platform的Launcher架構(gòu)中。
JUnit 5在運(yùn)行時(shí)需要Java 8及以上版本。
查看英文原文: JUnit 5 Released