使用 Visual Studio Code 测试 Java
通过 Java 测试运行器 扩展启用 Visual Studio Code 中的 Java 测试。这是一个轻量级扩展,用于运行和调试 Java 测试用例。
概述
该扩展支持以下测试框架
Java 测试运行器 与 Red Hat 提供的 Java™ 语言支持 和 Java 调试器 扩展一起使用,提供以下功能
- 运行/调试测试用例
- 自定义测试配置
- 查看测试报告
- 在测试资源管理器中查看测试
要求
- JDK (版本 1.8 或更高版本)
- Visual Studio Code (版本 1.59.0 或更高版本)
- Java 扩展包
项目设置
**注意**: 如果您已经在项目中设置了 Java 测试框架,可以跳过 功能 部分。
启用测试并将测试框架 JAR 添加到项目
从 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)')
}
未管理的文件夹
如果您的项目不使用任何构建工具,您可以通过 测试资源管理器 或手动下载以下 JAR 并将它们添加到项目类路径 (通过设置 java.project.referencedLibraries
,查看 依赖项管理 以获取更多信息) 来启用 JUnit 4
有关如何设置 JUnit 4 的更多信息,您可以查看 官方 JUnit Wiki。
JUnit 5
JUnit 5 团队提供了一组使用不同构建工具的示例项目。如果您的项目使用 Maven 或 Gradle 作为构建工具,请查看 junit5-sample 存储库。
未管理的文件夹
如果您的项目不使用任何构建工具,您可以通过 测试资源管理器 或手动将 junit-platform-console-standalone JAR 添加到项目类路径 (通过设置 java.project.referencedLibraries
,查看 依赖项管理 以获取更多信息) 来启用 JUnit 5。
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)')
}
未管理的文件夹
如果您的项目不使用任何构建工具,您可以通过 测试资源管理器 或手动下载以下 JAR 并将它们添加到项目类路径 (通过设置 java.project.referencedLibraries
,查看 依赖项管理 以获取更多信息) 来启用 TestNG
功能
运行/调试测试用例
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** 的条目
您也可以在命令面板中搜索 **Java: Go to Test** 找到该命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
VS Code 测试命令
还有其他测试命令(例如,**在当前文件中运行测试**),您可以在命令面板中搜索 'Test:' 找到它们(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
VS Code 测试设置
您可以在设置编辑器中搜索 'testing' 找到特定于测试的 VS Code 设置(⌘, (Windows, Linux Ctrl+,))。
常见问题解答
如果您在使用扩展时遇到任何问题,您可以查看 常见问题解答 和我们的 问题列表 来查看是否有您问题的答案。
贡献和反馈
如果您有兴趣提供反馈或直接贡献代码库,请阅读 为 Java 测试运行器贡献代码,其中涵盖以下内容
下一步
继续阅读以了解