在 Visual Studio Code 中測試 Java
在 Visual Studio Code 中測試 Java 是透過 Test Runner for Java 擴充功能所啟用。這是一個輕量級的擴充功能,用於執行及偵錯 Java 測試案例。
總覽
此延伸模組支援以下測試框架:
Test Runner for Java 與 Language Support for Java™ by Red Hat 及 Debugger for Java 擴充功能協作,以提供下列功能:
- 執行/偵錯測試案例
- 自訂測試組態
- 檢視測試報告
- 在測試總管中檢視測試
必要條件
- JDK (1.8 或更新版本)
- Visual Studio Code (1.59.0 或更新版本)
- Extension Pack for Java (Java 擴充套件包)
專案設定
注意:如果您已在專案中設定好 Java 測試框架,可以直接跳至 功能 區段。
啟用測試並將測試框架 JAR 加入您的專案
從 Test Runner for Java 0.34.0 版本開始,您可以在測試 (Testing) 總管中,透過幾個簡單步驟為您的非受管資料夾專案(即沒有使用任何建置工具的專案)啟用測試框架。
注意:目前此功能僅支援不包含任何測試相依性的非受管資料夾。
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)')
}
非受管資料夾
如果您的專案未使用任何建置工具,您可以透過 測試總管 (Testing Explorer) 啟用 JUnit 4,或者手動下載下列 JAR 並將其加入專案類別路徑(透過設定 java.project.referencedLibraries,請參閱 相依性管理 以取得更多資訊)。
您可以查看 JUnit 官方 Wiki 以取得更多關於如何設定 JUnit 4 的資訊。
JUnit 5
JUnit 5 團隊提供了使用不同建置工具的範例專案集。如果您的專案使用 Maven 或 Gradle 作為建置工具,請查閱 junit5-sample 儲存庫。
非受管資料夾
如果您的專案未使用任何建置工具,您可以透過 測試總管 (Testing Explorer) 啟用 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)')
}
非受管資料夾
如果您的專案未使用任何建置工具,您可以透過 測試總管 (Testing Explorer) 啟用 TestNG,或者手動下載下列 JAR 並將其加入專案類別路徑(透過設定 java.project.referencedLibraries,請參閱 相依性管理 以取得更多資訊)。
功能
執行/偵錯測試案例
Test Runner for Java 擴充功能會在類別和方法定義的左側產生捷徑(綠色的播放按鈕)。若要執行目標測試案例,請點選綠色的播放按鈕。您也可以對其按右鍵以查看更多選項。
測試總管 (Testing Explorer)
測試總管是一個樹狀檢視,用於顯示工作區中的所有測試案例。您可以選擇 Visual Studio Code 左側活動列上的燒杯按鈕來開啟它。您也可以在此處執行/偵錯測試案例並查看測試結果。
自訂測試組態
有時您可能需要自訂組態來執行測試案例。若要達成此目的,您可以將組態加入工作區的 設定 (settings) 中,位於 java.test.config 區段下。

目前支援的組態如下:
- args:指定將傳遞給測試執行器的命令列引數。
- classPaths:在此設定中定義的類別路徑將附加至已解析的類別路徑中。
- env:透過鍵值物件指定執行測試時的額外環境變數。
- envFile:指定包含環境變數定義的檔案絕對路徑。
- modulePaths:在此設定中定義的模組路徑將附加至已解析的模組路徑中。
- name:指定組態項目的名稱。您可以透過設定
java.test.defaultConfig來設定預設組態名稱。 - preLaunchTask:指定工作區
.vscode資料夾中tasks.json所定義的工作標籤。該工作將在開始測試前啟動。 - sourcePaths:指定偵錯測試時的額外來源路徑。
- vmArgs:指定 JVM 的額外選項與系統屬性。
- workingDirectory:指定執行測試時的工作目錄。
- testKind:指定此測試組態的目標測試框架。支援的值為
junit與testng。 - filters:指定測試篩選條件。
- tags:指定要納入或排除的標籤。以
!為前綴的標籤將被排除。注意:此設定僅在testKind設定為junit時生效。
- tags:指定要納入或排除的標籤。以
詳細資訊可在 vscode-java-test Wiki 中找到。
檢視測試結果
執行/偵錯測試案例後,相關測試項目的狀態將會在編輯器裝飾與測試總管中同步更新。
您可以觸發 Test: Peek Output 命令來預覽結果檢視。您可以選取堆疊追蹤中的連結以導覽至來源位置。
產生測試
此擴充功能提供協助您建立測試案例框架的功能。您可以在編輯器的內容選單中找到此項目。選取 Source Action... (原始碼動作...),然後選擇 Generate Tests... (產生測試...)。
如果您從主要原始程式碼(測試對象)觸發此原始碼動作,系統會詢問測試類別的完整名稱以及您想要測試的方法。該擴充功能隨即會為您產生測試程式碼。
如果您從測試原始程式碼觸發此原始碼動作,系統會詢問您想要加入哪些類型的測試方法,包含生命週期方法與測試方法。
測試導覽
此擴充功能提供協助您在測試與測試對象之間切換的功能。如果您的原始程式碼包含在 src/main/java 或 src/test/java 中,您可以在編輯器的內容選單中找到名為 Go to Test (前往測試) 或 Go to Test Subject (前往測試對象) 的項目。
您也可以在命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中搜尋 Java: Go to Test 來找到此命令。
VS Code 測試命令
還有其他測試命令(例如 Run Tests in Current File (執行目前檔案中的測試)),可以透過在命令選擇區搜尋 'Test:' 來找到 (⇧⌘P (Windows, Linux Ctrl+Shift+P))。

VS Code 測試設定
有一些特定於測試的 VS Code 設定,可以在設定編輯器中透過搜尋 'testing' 來找到 (⌘, (Windows, Linux Ctrl+,))。

常見問題
如果您在使用擴充功能時遇到任何問題,可以查閱 常見問題 (FAQ) 以及我們的 問題清單 (issue list),看看是否有您的問題解答。
貢獻與意見回饋
如果您有意提供意見回饋或直接貢獻程式碼庫,請參閱 Contributing to Test Runner for Java (為 Test Runner for Java 貢獻),其中涵蓋了下列內容:
後續步驟
繼續閱讀以了解
- 偵錯 (Debugging) - 了解如何使用 VS Code 對 Java 專案進行偵錯。
- Java 擴充功能 - 了解更多對 VS Code 有用的 Java 擴充功能。