使用Visual Studio Code测试Java

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

概述

该扩展支持以下测试框架:

Java 测试运行器Red Hat 提供的 Java™ 语言支持Java 调试器 扩展一起工作,提供以下功能:

  • 运行/调试测试用例
  • 自定义测试配置
  • 查看测试报告
  • 在测试资源管理器中查看测试

需求

  • JDK(版本1.8或更高)
  • Visual Studio Code(版本1.59.0或更高版本)
  • Java扩展包

安装Java扩展包

项目设置

注意: 如果您已经在项目中设置了Java测试框架,可以跳转到功能部分。

启用测试并将测试框架JAR添加到您的项目中

从Java版本0.34.0的Test Runner开始,您可以通过在测试资源管理器中进行几个简单的步骤,为您的非托管文件夹项目(没有任何构建工具的项目)启用测试框架:

注意: 目前此功能仅支持不包含任何测试依赖项的非托管文件夹。

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-platform-console-standalone JAR 包含到项目类路径中来启用 JUnit 5(通过设置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,更多信息请查看依赖管理):

功能

运行/调试测试用例

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时生效。

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

查看测试结果

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

你可以触发命令Test: Peek Output来查看结果视图。你可以选择堆栈跟踪中的链接以导航到源代码位置。

生成测试

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

如果您从您的主源代码(测试对象)触发此源操作,系统将询问您测试类的完全限定名称以及您想要测试的方法。扩展程序随后将为您生成测试代码:

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

测试导航

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

你也可以在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中通过搜索Java: Go to Test找到该命令。

VS Code 测试命令

还有其他测试命令(例如,在当前文件中运行测试)可以通过在命令面板中搜索“Test:”来找到(⇧⌘P (Windows, Linux Ctrl+Shift+P))。

在命令面板中测试命令

VS Code 测试设置

在设置编辑器(⌘, (Windows, Linux Ctrl+,))中搜索“testing”可以找到与测试相关的VS Code设置。

在设置编辑器中测试设置

常见问题解答

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

贡献与反馈

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

下一步

继续阅读以了解以下内容: