參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

在 Visual Studio Code 中測試 Java

在 Visual Studio Code 中測試 Java 的功能由 Test Runner for Java 擴充套件啟用。這是一個用於執行和除錯 Java 測試用例的輕量級擴充套件。

概述

該擴充套件支援以下測試框架:

Test Runner for JavaLanguage Support for Java™ by Red HatDebugger for Java 擴充套件協同工作,提供以下功能:

  • 執行/除錯測試用例
  • 自定義測試配置
  • 檢視測試報告
  • 在測試資源管理器中檢視測試

要求

安裝 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 部分新增配置。

Customize test configurations

目前支援的配置有:

  • args: 指定將傳遞給測試執行器的命令列引數。
  • classPaths: 在此設定中定義的類路徑將被附加到已解析的類路徑中。
  • env: 透過鍵值對物件指定執行測試時的額外環境變數。
  • envFile: 指定包含環境變數定義的檔案的絕對路徑。
  • modulePaths: 在此設定中定義的模組路徑將被附加到已解析的模組路徑中。
  • name: 指定配置項的名稱。你可以透過設定 java.test.defaultConfig 來設定預設配置名稱。
  • preLaunchTask: 指定在 tasks.json(位於工作區的 .vscode 資料夾中)中定義的任務標籤。該任務將在測試開始前啟動。
  • sourcePaths: 指定除錯測試時的額外源路徑。
  • vmArgs: 為 JVM 指定額外的選項和系統屬性。
  • workingDirectory: 指定執行測試時的工作目錄。
  • testKind: 指定此測試配置的目標測試框架。支援的值為 junittestng
  • filters: 指定測試過濾器。
    • tags: 指定要包含或排除的標籤。以 ! 為字首的標籤將被排除。注意:此設定僅在 testKind 設定為 junit 時生效。

更多詳情可以在 vscode-java-test Wiki 上找到。

檢視測試結果

執行/除錯測試用例後,相關測試項的狀態將在編輯器裝飾和測試資源管理器中更新。

你可以觸發 Test: Peek Output 命令來檢視結果檢視。你可以選擇堆疊跟蹤中的連結導航到原始碼位置。

生成測試

該擴充套件提供了幫助你搭建測試用例的功能。你可以在編輯器上下文選單中找到入口。選擇 Source Action...,然後選擇 Generate Tests...

如果你從主原始碼(被測試物件)觸發此源操作,系統將詢問你測試類的完全限定名以及你想要測試的方法。然後,該擴充套件將為你生成測試程式碼。

如果你從測試原始碼觸發源操作,系統將詢問你想要新增哪種型別的測試方法,包括生命週期方法和測試方法。

測試導航

該擴充套件提供了幫助你在測試和被測試物件之間導航的功能。如果你的原始碼位於 src/main/javasrc/test/java 中,你可以在編輯器上下文選單中找到名為 Go to TestGo 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:”來找到。

Testing commands in the Command Palette

VS Code 測試設定

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

Testing settings in the Settings editor

常見問題

如果你在使用該擴充套件時遇到任何問題,可以檢視 常見問題解答 和我們的 問題列表,看看是否有解決你問題的方法。

貢獻和反饋

如果你有興趣提供反饋或直接為程式碼庫做貢獻,請閱讀 為 Test Runner for Java 做貢獻,其中涵蓋以下內容:

後續步驟

繼續閱讀以瞭解:

  • 除錯 - 瞭解如何使用 VS Code 除錯你的 Java 專案。
  • Java 擴充套件 - 瞭解更多適用於 VS Code 的有用 Java 擴充套件。