跳到主要内容

测试 API

vscode_deno 扩展实现了 vscode 的客户端 Testing API 和 当使用支持测试 API 的 Deno 版本时,您的项目中的测试将显示在 Deno 启用项目的 IDE 中。

测试显示

当编辑器和 Deno 版本都支持测试 API 时,测试资源管理器 视图将激活,表示为烧杯图标,它将为您提供一个侧边栏,显示在项目中发现的测试。

此外,在代码中标识的测试旁边,将有装饰,允许您运行和查看每个测试的状态,还将在命令面板中有测试的条目。

发现测试

目前,Deno 只会发现作为工作区中的“已知”模块的测试。当在编辑器中打开模块或导入该模块的另一个模块时,该模块将成为“已知”。

将来,测试将以与工作区根目录的 deno test 子命令发现测试的方式类似。

运行测试

您可以从测试资源管理器视图、查看测试代码时测试旁边的装饰或命令面板中运行测试。您还可以使用 Text Explorer 视图中的筛选功能来排除测试运行中的某些测试。

目前,Deno 只支持“运行”测试功能。将来,我们将添加调试运行模式以及覆盖率运行模式。我们还将将基准测试作为一个 标签 集成,因此可以在测试运行中运行(或排除)它们。

Deno 语言服务器不会启动新的 CLI 子进程。相反,它为每个测试模块生成一个新的线程和 JavaScript 运行时来执行测试。

测试输出

您的测试中发生的任何 console.log() 都将被发送到 vscode 中的测试输出窗口。

当测试失败时,包括堆栈跟踪在内的失败消息将在检查 vscode 中的测试结果时可用。

测试的结构

测试将显示在测试资源管理器中的顶层,其中包含包含测试的模块。在模块内部,将包括已发现的所有测试,如果您使用测试步骤,它们将包括在测试下方。

在大多数情况下,Deno 语言服务器将能够静态识别测试,但如果您动态生成测试,则 Deno 可能在运行时不知道它们。在这些情况下,可能无法从运行中筛选这些测试,但它们将在资源管理器视图中遇到时添加。

配置

默认情况下,测试的执行方式类似于在命令行上使用 deno test --allow-all。可以通过设置用户或工作区设置中的 Deno > Testing: Args 选项(或手动配置时的 deno.testing.args)来更改这些默认参数。在此处添加您希望与 deno test 子命令一起使用的单独参数。

根据您的其他设置,这些选项将自动合并到运行测试时使用的“命令行”中,除非在 Deno > Testing: Args 设置中明确提供。例如,如果您设置了 Deno: Import Map (deno.importMap),那么该值将在测试参数设置中提供明确的 --import-map 值之前使用。

已知限制和注意事项

由于 Deno 测试运行器的运行方式,无法排除(或显式包括)测试步骤。尽管 vscode 允许您这样做,例如选择运行特定测试步骤,但该测试中的所有测试步骤都将运行(但 vscode 不会更新其结果)。因此,如果测试用例中存在其他副作用,它们可能会发生。