這篇文章主要講解了在Maven項目中運行JUnit5測試用例的實現方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
編寫JUnit 5測試用例
如果你是Java開發者,那么對于JUnit應該就不陌生。JUnit是Java單元測試的基礎工具。
JUnit目前最新的版本是JUnit 5.x,但廣大的Java開發者估計還停留在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
因此,在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 href="https://waylau.com" 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目錄,創建一個與之對應的單元測試用例:
/**
* 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 href="https://waylau.com" 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測試用例
上如上文所講,在大多數主流的IDE中,都提供了對JUnit 5的支持。因此可以選擇在IDE中運行,也可以通過Maven執行測試。
在IDE中運行
以Eclipse IDE為例,右鍵類或者方法,選擇“Run As -> JUnit Test”即可。如下圖所示。

通過Maven執行測試
在Maven中執行測試用例的命令如下:
mvn test
如果你執行了上述命令,會得到下面的測試結果
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.waylau.java.demo.HelloWorldTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 secResults :
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] ------------------------------------------------------------------------
上面結果沒有失敗的用例,但同時你也發現了沒有成功的用例。因為根本沒有執行測試用例。
這是因為,在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中再次執行測試用例,會得到下面的測試結果:
[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類已經得到了測試執行。
看完上述內容,是不是對在Maven項目中運行JUnit5測試用例的實現方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。