测试 API
vscode_deno
扩展实现了一个 vscode 测试 API 的客户端,当使用支持测试 API 的 Deno 版本时,项目中的测试将在您为 Deno 启用的项目中显示在您的 IDE 中。
测试显示 跳转到标题
当编辑器和 Deno 版本都支持测试 API 时,测试资源管理器 视图将被激活,由一个烧杯图标表示,它将为您提供一个侧边栏,显示在您的项目中发现的测试。
此外,在代码中标识的测试旁边,将会有装饰,允许您运行并查看每个测试的状态,并且在命令面板中也会有测试条目。
发现测试 跳转到标题
目前,Deno 只能发现工作区内“已知”模块的一部分测试。当模块在编辑器中打开,或另一个导入该模块的模块在编辑器中“已知”时,该模块就成为“已知”。
将来,测试将以类似于 deno test
子命令发现工作区根目录中的测试的方式被发现。
运行测试 跳转到标题
您可以从测试资源管理器视图、从查看测试代码时测试旁边的装饰,或通过命令面板运行测试。您也可以使用测试资源管理器视图中的过滤功能从测试运行中排除某些测试。
目前,Deno 只支持“运行”测试功能。将来我们将添加调试运行模式和覆盖率运行模式。我们还将把基准测试集成到一个标签中,以便它们可以从您的测试运行中运行(或排除)。
Deno 语言服务器不会启动新的 CLI 子进程。相反,它会为每个测试模块生成一个新的线程和 JavaScript 运行时来执行测试。
测试输出 跳转到标题
测试中发生的任何 console.log()
都将发送到 vscode 中的测试输出窗口。
当测试失败时,错误消息(包括堆栈跟踪)将在 vscode 中检查测试结果时可用。
测试结构 跳转到标题
测试将在测试资源管理器中显示在顶层,其中包含测试的模块。模块内部将包含所有已发现的测试,如果您使用测试步骤,它们将包含在测试下。
在大多数情况下,Deno 语言服务器将能够静态地识别测试,但是如果您动态地生成测试,Deno 可能在运行时才意识到它们。在这些情况下,可能无法从运行中过滤掉这些测试,但它们将在遇到时添加到资源管理器视图中。
配置 跳转到标题
默认情况下,测试的执行方式类似于您在命令行上使用 deno test --allow-all
的方式。这些默认参数可以通过在您的用户或工作区设置中设置Deno > 测试:参数选项(或如果您手动配置,则为 deno.testing.args
)来更改。在此处添加您将在 deno test
子命令中使用的单个参数。
根据您设置的其他选项,这些选项将自动合并到运行测试时使用的“命令行”中,除非在Deno > 测试:参数设置中明确提供。例如,如果您设置了Deno:导入映射(deno.importMap
),则将使用该值,除非您在测试参数设置中提供了明确的--import-map
值。
已知限制和注意事项 跳转到标题
由于 Deno 测试运行器的工作方式,无法排除(或明确包含)测试步骤。虽然 vscode UI 允许您执行此操作,例如,选择运行特定测试步骤,但该测试中的所有测试步骤都将运行(但 vscode 不会更新其结果)。因此,如果测试用例中存在其他副作用,它们可能会发生。