在 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 測試框架,可以跳到功能部分。
為你的專案啟用測試並新增測試框架 JAR
從 Test Runner for 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 官方維基,瞭解更多關於如何設定 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
,更多資訊請檢視依賴管理):
功能
執行/除錯測試用例
Test Runner for 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 上找到。
檢視測試結果
執行/除錯測試用例後,相關測試項的狀態將在編輯器裝飾和測試資源管理器中更新。
你可以觸發 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),可以透過在命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中搜索“Test:”來找到。
VS Code 測試設定
有一些特定於測試的 VS Code 設定,可以透過在設定編輯器 (⌘, (Windows, Linux Ctrl+,)) 中搜索“testing”來找到。
常見問題
如果你在使用該擴充套件時遇到任何問題,可以檢視 常見問題解答 和我們的 問題列表,看看是否有解決你問題的方法。
貢獻和反饋
如果你有興趣提供反饋或直接為程式碼庫做貢獻,請閱讀 為 Test Runner for Java 做貢獻,其中涵蓋以下內容:
後續步驟
繼續閱讀以瞭解: