在 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 版本開始,您可以在測試 (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 區段下。

Customize test configurations

目前支援的組態如下:

  • args:指定將傳遞給測試執行器的命令列引數。
  • classPaths:在此設定中定義的類別路徑將附加至已解析的類別路徑中。
  • env:透過鍵值物件指定執行測試時的額外環境變數。
  • envFile:指定包含環境變數定義的檔案絕對路徑。
  • modulePaths:在此設定中定義的模組路徑將附加至已解析的模組路徑中。
  • name:指定組態項目的名稱。您可以透過設定 java.test.defaultConfig 來設定預設組態名稱。
  • preLaunchTask:指定工作區 .vscode 資料夾中 tasks.json 所定義的工作標籤。該工作將在開始測試前啟動。
  • 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 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))。

Testing commands in the Command Palette

VS Code 測試設定

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

Testing settings in the Settings editor

常見問題

如果您在使用擴充功能時遇到任何問題,可以查閱 常見問題 (FAQ) 以及我們的 問題清單 (issue list),看看是否有您的問題解答。

貢獻與意見回饋

如果您有意提供意見回饋或直接貢獻程式碼庫,請參閱 Contributing to Test Runner for Java (為 Test Runner for Java 貢獻),其中涵蓋了下列內容:

後續步驟

繼續閱讀以了解

© . This site is unofficial and not affiliated with Microsoft.