junit5和junit4_JUnit 5 –设置
junit5和junit4
2015年11月, JUnit Lambda團隊展示了他們的原型 。 此后,該項目更名為JUnit 5,并于2016年2月發布了Alpha版本。我們將在一系列簡短文章中進行探討:
- 建立
- 基本
- 建筑
- 條件
- 注射
- …
本節討論JUnit 5的設置,以便您可以針對新API編寫代碼并在IDE或構建工具中運行測試。
總覽
在新興的《 JUnit 5用戶指南》中可以找到您將在此處閱讀的更多內容以及更多內容。 請注意,它基于Alpha版本,因此可能會發生變化。
確實,我們鼓勵我們提出問題或提出請求,以便JUnit 5可以進一步改進。 請利用這個機會! 這是幫助JUnit幫助我們的機會。
如有必要,此帖子將得到更新。 我在這里顯示的代碼示例可以在Github上找到。
寫作測試
junit5-api工件中包含用于編寫測試的API。 編寫測試只需要使用您喜歡的構建工具將其包含在項目中即可。
- 群組ID :org.junit5
- 工件ID :junit5-api
- 版本 :5.0.0-ALPHA
要處理一些事情,讓我們快速創建第一個測試 :
HelloWorldTest.java
package org.codefx.demo.junit5;import org.junit.gen5.api.Test;class HelloWorldTest {@Testvoid helloJUnit5() {System.out.println("Hello, JUnit 5.");}}見媽,不公開! 酷吧? 我現在不會討論它,但是下一篇文章將討論這個(以及其他基礎知識),所以請繼續關注。
運行測試
隨著JUnit 5的不斷發展,缺乏對本機工具的支持。 但是有一些準備工作可以使一切正常運行。
JUnit 4運行器
甲測試運行稱為JUnit5可以用來作為JUnit 4運行的一部分來運行新的測試。 您將在其自己的工件中找到它,您必須將其添加到項目中:
- 群組ID :org.junit5
- 工件ID :junit4-runner
- 版本 :5.0.0-ALPHA
運行程序將調用實際運行JUnit 5測試的引擎。 引擎還具有自己的工件,您必須添加以下工件:
- 群組ID :org.junit5
- 工件ID :junit5-engine
- 版本 :5.0.0-ALPHA
要運行項目中的所有測試,最簡單的為它們創建測試套件的方法是:
package org.codefx.demo.junit5;import org.junit.gen5.junit4.runner.JUnit5; import org.junit.gen5.junit4.runner.Packages; import org.junit.runner.RunWith;@RunWith(JUnit5.class) @Packages({ "org.codefx.demo.junit5" }) public class TestWithJUnit5 { }注意,該類必須是常規的JUnit 4測試類,即,它必須遵守通用的命名約定,并且必須是公共的。 @ Packages-annotation將包解釋為層次結構,因此它將在所有以org.codefx.demo.junit5為前綴的包中運行所有測試。 如果愿意,可以直接在JUnit 5測試類上使用相同的運行器。 在這種情況下,它們必須是公開的。
現在我們完成了! 您最喜歡的IDE和構建工具將愉快地運行帶有@RunWith(JUnit5.class)注釋的類,從而運行新的JUnit 5測試。
在真正的JUnit 5支持出現之前,某些功能可能無法使用,例如,IDE將無法運行單獨的測試方法。 但是暫時我發現這是最簡單,最獨立于工具的解決方案。
生成工具支持
JUnit團隊已經在努力實現對JUnit 5的構建工具支持,即不通過JUnit 4繞道而行。基本的Gradle插件和Maven Surefire提供程序已啟動并正在運行。 計劃將這兩個項目在某個時候移交給各自的社區。
兩者都有示例項目( Gradle和Maven )。 有關更多詳細信息,請參閱用戶指南 。
命令行的勝利!
如果這一切對您來說太花哨了,請嘗試console console ,它可以讓您直接從命令行運行測試。 要獲取它,您可以下載此ZIP 。
不幸的是它不能開箱即用 。 我不得不將上述的junit5-api和junit5-engine工件放到lib中,然后在bin中的腳本中將類路徑定義編輯為CLASSPATH = $ APP_HOME / lib / *,以使其工作。
忽略其他依賴項(例如,在其他測試庫上),可以按以下方式使用它:
使用junit控制臺
# run all tests junit-console -p ${path_to_compiled_test_classes} -a # run a specific test junit-console-p ${path_to_compiled_test_classes}org.codefx.demo.junit5.HelloWorldTest發布時間由托馬斯LETH -奧爾森在CC-BY-SA 2.0
兼容性
您可能已經注意到,JUnit 5占用了一個新的名稱空間:org.junit.gen5。 這意味著在同一項目中使用不同的JUnit版本時不會有沖突。
實際上,一個項目可以包含并運行來自不同版本的測試而不會出現問題,這允許緩慢遷移到JUnit5。我們在研究JUnit的新體系結構時將重新討論該主題。
通過異常與JUnit通信的測試庫,例如Hamcrest和AssertJ,將繼續在新版本中工作。 查看完整版本的HelloWorldTest ,以獲取使用Mockito和AssertJ的示例。
反射
對于我們的JUnit 5設置,我們在項目中包括了junit5-api,junit5-engine和junit4-runner,編寫了第一個最小測試用例,并將其作為JUnit 4測試套件的一部分運行。
下一篇文章將探討如何在JUnit 5中編寫測試的基礎知識。
翻譯自: https://www.javacodegeeks.com/2016/02/junit-5-setup.html
junit5和junit4
總結
以上是生活随笔為你收集整理的junit5和junit4_JUnit 5 –设置的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 安卓开机声音关闭(安卓开机声音)
- 下一篇: 安卓系统qq2021(安卓系统qq)
