在 Visual Studio Code 中測試 Java
透過 Java 測試執行器 擴充功能,即可在 Visual Studio Code 中測試 Java。這是一個輕量型擴充功能,可執行及偵錯 Java 測試案例。
概觀
此擴充功能支援下列測試架構
Java 測試執行器 與 Red Hat 的 Java™ 語言支援 和 Java 偵錯工具 擴充功能搭配使用,以提供下列功能
- 執行/偵錯測試案例
- 自訂測試組態
- 檢視測試報告
- 在測試總管中檢視測試
需求
- JDK (1.8 或更新版本)
- Visual Studio Code (1.59.0 或更新版本)
- Extension Pack for Java
專案設定
注意:如果您已在專案中設定 Java 測試架構,則可以跳至功能章節。
啟用測試並將測試架構 JAR 新增至您的專案
從 Java 測試執行器 0.34.0 版開始,您只需在測試總管中幾個步驟,即可為您的非受控資料夾專案 (沒有任何建置工具的專案) 啟用測試架構
注意:目前此功能僅支援不包含任何測試相依性的非受控資料夾。
JUnit 4
Maven
將下列組態新增至您的 pom.xml
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>(YOUR_JUNIT_VERSION)</version>
<scope>test</scope>
</dependency>
Gradle
確定您的 build.gradle
中已新增下列程式碼行
plugins {
java
}
dependencies {
testImplementation('junit:junit:(YOUR_JUNIT_VERSION)')
}
非受控資料夾
如果您的專案未使用任何建置工具,您可以透過測試總管啟用 JUnit 4,或手動下載下列 JAR,並將它們新增至專案類別路徑 (透過設定 java.project.referencedLibraries
,如需詳細資訊,請參閱相依性管理)
您可以查看 JUnit 官方 Wiki,以取得有關如何設定 JUnit 4 的詳細資訊。
JUnit 5
JUnit 5 團隊提供了包含不同建置工具的範例專案集合。如果您的專案使用 Maven 或 Gradle 作為建置工具,請查看 junit5-sample 存放庫。
非受控資料夾
如果您的專案未使用任何建置工具,您可以透過測試總管啟用 JUnit 5,或手動將 junit-platform-console-standalone JAR 包含在專案類別路徑中 (透過設定 java.project.referencedLibraries
,如需詳細資訊,請參閱相依性管理)。
TestNG
Maven
將下列組態新增至您的 pom.xml
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>(YOUR_TESTNG_VERSION)</version>
<scope>test</scope>
</dependency>
Gradle
確定您的 build.gradle
中已新增下列程式碼行
plugins {
java
}
dependencies {
testImplementation('org.testng:testng:(YOUR_TESTNG_VERSION)')
}
非受控資料夾
如果您的專案未使用任何建置工具,您可以透過測試總管啟用 TestNG,或手動下載下列 JAR,並將它們新增至專案類別路徑 (透過設定 java.project.referencedLibraries
,如需詳細資訊,請參閱相依性管理)
功能
執行/偵錯測試案例
Java 測試執行器擴充功能會在類別和方法定義的左側產生捷徑 (綠色播放按鈕)。若要執行目標測試案例,請選取綠色播放按鈕。您也可以在其上按一下滑鼠右鍵以查看更多選項。
測試總管
測試總管是一個樹狀檢視,可顯示您工作區中的所有測試案例。您可以選取 Visual Studio Code 左側活動列上的燒杯按鈕來開啟它。您也可以從那裡執行/偵錯您的測試案例並檢視其測試結果。
自訂測試組態
有時您可能想要自訂組態以執行您的測試案例。若要達成此目的,您可以將組態新增至工作區設定中的章節:java.test.config
。
目前支援的組態為
- args:指定將傳遞至測試執行器的命令列引數。
- classPaths:在此設定中定義的類別路徑將附加至已解析的類別路徑。
- env:透過鍵值物件指定執行測試時的額外環境變數。
- envFile:指定包含環境變數定義的檔案絕對路徑。
- modulePaths:在此設定中定義的模組路徑將附加至已解析的模組路徑。
- name:指定組態項目的名稱。您可以透過設定
java.test.defaultConfig
來設定預設組態名稱。 - preLaunchTask:指定
tasks.json
(在工作區的.vscode
資料夾中) 中指定的工作標籤。工作將在測試開始之前啟動。 - sourcePaths:指定偵錯測試時的額外來源路徑。
- vmArgs:指定 JVM 的額外選項和系統屬性。
- workingDirectory:指定執行測試時的工作目錄。
- testKind:指定此測試組態的目標測試架構。支援的值為
junit
、testng
。 - filters:指定測試篩選器。
- tags:指定要包含或排除的標籤。具有
!
作為前置詞的標籤將會被排除。注意:此設定僅在testKind
設定為junit
時生效
- tags:指定要包含或排除的標籤。具有
更多詳細資訊可在 vscode-java-test Wiki 上找到。
檢視測試結果
在執行/偵錯測試案例之後,相關測試項目的狀態將在編輯器裝飾和測試總管中更新。
您可以觸發測試:預覽輸出命令來預覽結果檢視。您可以選取堆疊追蹤中的連結來導覽至來源位置。
產生測試
此擴充功能提供功能來協助您建立測試案例的骨架。您可以在編輯器內容功能表中找到項目。選取來源動作...,然後選擇產生測試...。
如果您從主要原始程式碼 (測試主體) 觸發此來源動作,系統會詢問您測試類別的完整名稱以及您想要測試的方法。然後,擴充功能將為您產生測試程式碼
如果您從測試原始程式碼觸發來源動作,系統會詢問您想要新增哪種類型的測試方法。包括生命週期方法和測試方法
測試導覽
此擴充功能提供功能來協助您在測試和測試主體之間導覽。如果您的原始程式碼包含在 src/main/java
或 src/test/java
中,您可以在編輯器內容功能表中找到名為前往測試或前往測試主體的項目
您也可以在命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中搜尋 Java:前往測試 來找到此命令。
VS Code 測試命令
還有其他測試命令 (例如,在目前檔案中執行測試),可透過在命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中搜尋 'Test:' 來找到。
VS Code 測試設定
有特定於測試的 VS Code 設定,可透過在設定編輯器 (⌘, (Windows、Linux Ctrl+,)) 中搜尋 'testing' 來找到。
常見問題集
如果您在使用擴充功能時遇到任何問題,您可以檢閱常見問題集和我們的問題清單,以檢查是否有您問題的答案。
貢獻與意見反應
如果您有興趣提供意見反應或直接貢獻程式碼庫,請閱讀貢獻 Java 測試執行器,其中涵蓋下列內容
後續步驟
繼續閱讀以了解