欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Maven項目中運行JUnit5測試用例實現(xiàn)

 更新時間:2020年04月28日 10:18:17   作者:老衛(wèi)  
這篇文章主要介紹了如何在Maven項目中運行JUnit5測試用例實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文演示了如何如何編寫JUnit 5測試用例,在Maven項目中運行JUnit 5測試用例。

編寫JUnit 5測試用例

如果你是Java開發(fā)者,那么對于JUnit應該就不陌生。JUnit是Java單元測試的基礎工具。

JUnit目前最新的版本是JUnit 5.x,但廣大的Java開發(fā)者估計還停留在JUnit 4.x,因此有必要演示下如何編寫JUnit 5測試用例。

引入JUnit 5依賴

相比較JUnit 4而言,JUnit 5一個比較大的改變是JUnit 5擁有與JUnit 4不同的全新的API。JUnit 5分成了三部分:

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
  1. JUnit Platform是在JVM上啟動測試框架的基礎。 它還定義了TestEngine API,用于開發(fā)在平臺上運行的測試框架。 此外,該JUnit Platform還提供了一個控制臺啟動器(用于從命令行啟動該平臺)和一個基于JUnit 4的運行器,用于在基于JUnit 4的環(huán)境中在該平臺上運行任何TestEngine。 流行的IDE(IntelliJ IDEA,Eclipse,NetBeans和Visual Studio Code等)和構建工具(Gradle,Maven和Ant等)中也存在對JUnit平臺的一流支持。
  2. JUnit Jupiter是新編程模型和擴展模型的組合,用于在JUnit 5中編寫測試和擴展。Jupiter子項目提供了一個TestEngine,用于在平臺上運行基于Jupiter的測試。
  3. JUnit Vintage提供了一個TestEngine,用于在平臺上運行基于JUnit 3和基于JUnit 4的測試。

因此,在Maven中,JUnit 5分模塊的,意味著你可以按需引入上面定義的任意模塊。這使得引入JUnit 5依賴就有了多個選擇。

一般而言,力求省事,就可以通過引入junit-jupiter依賴。junit-jupiter就是常用JUnit 5模塊的聚合包。

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter</artifactId>
  <version>${junit-jupiter.version}</version>
  <scope>test</scope>
</dependency>

編寫測試用例

下面是一段簡單的Java程序:

/**
 * Welcome to https://waylau.com
 */
package com.waylau.java.demo;

/**
 * Hello World.
 * 
 * @since 1.0.0 2020年4月12日
 * @author <a  rel="external nofollow" rel="external nofollow" >Way Lau</a>
 */
public class HelloWorld {

 private String words;

 public HelloWorld(String words) {
 this.words = words;
 }
 
 public String getWords() {
 return words;
 }

}

按照管理,我們會在Maven工程的test目錄,創(chuàng)建一個與之對應的單元測試用例:

/**
 * Welcome to https://waylau.com
 */
package com.waylau.java.demo;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

/**
 * HelloWorld Test.
 * 
 * @since 1.0.0 2020年4月12日
 * @author <a  rel="external nofollow" rel="external nofollow" >Way Lau</a>
 */
class HelloWorldTests {

 @Test
 void testGetWords() {
 var words = "Hello World";
 var hello = new HelloWorld(words);
 
 assertEquals(words, hello.getWords());
 }
}

上述用例非常簡單,就是想測試下,HelloWorld的getWords方法,是否與預期的一致。

這里需要強調的是JUnit 5和JUnit 4的不同點:

  • JUnit 5使用的API是org.junit.jupiter.api.*包下
  • 測試方法(比如上例testGetWords),可以不加public。

運行JUnit 5測試用例

上如上文所講,在大多數主流的IDE中,都提供了對JUnit 5的支持。因此可以選擇在IDE中運行,也可以通過Maven執(zhí)行測試。

在IDE中運行

以Eclipse IDE為例,右鍵類或者方法,選擇“Run As -> JUnit Test”即可。如下圖所示。

通過Maven執(zhí)行測試

在Maven中執(zhí)行測試用例的命令如下:

mvn test

如果你執(zhí)行了上述命令,會得到下面的測試結果

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.waylau.java.demo.HelloWorldTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.983 s
[INFO] Finished at: 2020-04-12T11:22:16+08:00
[INFO] ------------------------------------------------------------------------

上面結果沒有失敗的用例,但同時你也發(fā)現(xiàn)了沒有成功的用例。因為根本沒有執(zhí)行測試用例。

這是因為,在Maven中并不能直接識別JUnit 5測試用例。如何解決?此時,還需要額外加多Maven Surefire或Maven Failsafe兩個插件。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${maven-surefire-plugin.version}</version>
    </plugin>
    <plugin>
      <artifactId>maven-failsafe-plugin</artifactId>
      <version>${maven-failsafe-plugin.version}</version>
    </plugin>
  </plugins>
</build>

在Maven中再次執(zhí)行測試用例,會得到下面的測試結果:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.waylau.java.demo.HelloWorldTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.045 s - in com.waylau.java.demo.HelloWorldTests
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.116 s
[INFO] Finished at: 2020-04-12T11:30:29+08:00
[INFO] ------------------------------------------------------------------------

可以看到,HelloWorldTests類已經得到了測試執(zhí)行。

參考引用

Eclipse IDE支持Java 14: http://www.dbjr.com.cn/article/185636.htm
本文示例源碼:https://github.com/waylau/java-data-structures-and-algorithms-in-action

到此這篇關于如何在Maven項目中運行JUnit5測試用例實現(xiàn)的文章就介紹到這了,更多相關Maven運行JUnit5測試內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java多線程之synchronized同步代碼塊詳解

    Java多線程之synchronized同步代碼塊詳解

    這篇文章主要為大家詳細介紹了Java多線程之synchronized同步代碼塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Spring中基于XML的AOP配置詳解

    Spring中基于XML的AOP配置詳解

    這篇文章主要介紹了Spring中基于XML的AOP配置,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 從內存地址解析Java的static關鍵字的作用

    從內存地址解析Java的static關鍵字的作用

    這篇文章主要介紹了從內存地址解析Java的static關鍵字的作用,包括靜態(tài)成員變量和靜態(tài)方法等重要內容,需要的朋友可以參考下
    2015-10-10
  • Idea servlet映射方法優(yōu)缺點對比

    Idea servlet映射方法優(yōu)缺點對比

    這篇文章主要介紹了Idea servlet映射方法優(yōu)缺點對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 詳解重試框架Spring retry實踐

    詳解重試框架Spring retry實踐

    spring retry是從spring batch獨立出來的一個能功能,主要實現(xiàn)了重試和熔斷。這篇文章主要介紹了詳解重試框架Spring retry實踐,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • MybatisPlus關聯(lián)查詢的完美實現(xiàn)方案

    MybatisPlus關聯(lián)查詢的完美實現(xiàn)方案

    我們在項目開發(fā)的時候,難免會遇到連表查詢的操作,所以下面這篇文章主要給大家介紹了關于MybatisPlus關聯(lián)查詢的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • SPRING管理XML方式過程解析

    SPRING管理XML方式過程解析

    這篇文章主要介紹了SPRING管理XML方式過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 使用hutool進行ftp文件下載和上傳詳細代碼示例

    使用hutool進行ftp文件下載和上傳詳細代碼示例

    在開發(fā)Java項目時,FTP客戶端是經常需要使用的工具,因為FTP協(xié)議在文件傳輸方面有著廣泛的應用,這篇文章主要給大家介紹了關于使用hutool進行ftp文件下載和上傳的相關資料,需要的朋友可以參考下
    2024-02-02
  • MyBatis Plus邏輯刪除和分頁插件使用詳解

    MyBatis Plus邏輯刪除和分頁插件使用詳解

    這篇文章主要介紹了MyBatis Plus之邏輯刪除和分頁插件使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數據問題解決

    Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數據問題

    RequestParam用于將指定的請求參數賦值給方法中的形參,可以接受簡單類型屬性,也可以接受對象類型,一般用于GET請求,下面這篇文章主要給大家介紹了關于Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數據問題解決的相關資料,需要的朋友可以參考下
    2022-10-10

最新評論