🚀 在 VS Code 中

在 Visual Studio Code 中测试 Java

在 Visual Studio Code 中测试 Java 由 Test Runner for Java 扩展启用。它是一个轻量级扩展,用于运行和调试 Java 测试用例。

概述

该扩展支持以下测试框架

Test Runner for Java 扩展与 Language 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 官方 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,有关详细信息,请查看依赖项管理

功能

运行/调试测试用例

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

查看测试结果

运行/调试测试用例后,相关测试项的状态将在编辑器装饰和测试资源管理器中更新。

你可以触发命令测试: 查看输出以查看结果视图。你可以选择堆栈跟踪中的链接以导航到源位置。

生成测试

该扩展提供了帮助你搭建测试用例的功能。你可以在编辑器上下文菜单中找到该入口。选择源操作...,然后选择生成测试...

如果你从主源代码(测试对象)触发此源操作,系统将询问你要测试的测试类的完全限定名称和方法。然后,扩展将为你生成测试代码

如果你从测试源代码触发源操作,系统将询问你要添加哪种类型的测试方法。包括生命周期方法和测试方法

测试导航

该扩展提供了帮助你在测试和测试对象之间导航的功能。如果你的源代码包含在 src/main/javasrc/test/java 中,你可以在编辑器上下文菜单中找到名为转到测试转到测试对象的条目

你还可以在命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中通过搜索 Java: 转到测试 找到该命令。

VS Code 测试命令

还有其他测试命令(例如,在当前文件中运行测试),可以通过在命令面板 (⇧⌘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

常见问题解答

如果你在使用扩展时遇到任何问题,可以查看 FAQ 和我们的 问题列表,以检查是否有针对你问题的答案。

贡献和反馈

如果你有兴趣提供反馈或直接为代码库做出贡献,请阅读 Contributing to Test Runner for Java,其中涵盖以下内容

后续步骤

继续阅读以了解

  • 调试 - 了解如何使用 VS Code 调试 Java 项目。
  • Java 扩展 - 了解更多有用的 VS Code Java 扩展。