deno 测试
使用 Deno 的内置测试运行器运行测试。
命令 跳转到标题
deno test [OPTIONS] [files]... [-- [SCRIPT_ARG]...]
概要 跳转到标题
deno test [--no-check[=<NO_CHECK_TYPE>]] [--import-map <FILE>] [-q|--quiet]
[--no-remote] [--no-npm] [--node-modules-dir[=<node-modules-dir>]]
[--vendor[=<vendor>]][-c|--config <FILE>] [--no-config]
[-r|--reload[=<CACHE_BLOCKLIST>...]] [--lock [<FILE>]] [--lock-write]
[--no-lock] [--cert <FILE>] [--allow-read[=<PATH>...]] [--deny-read[=<PATH>...]]
[--allow-write[=<PATH>...]] [--deny-write[=<PATH>...]]
[--allow-net[=<IP_OR_HOSTNAME>...]] [--deny-net[=<IP_OR_HOSTNAME>...]]
[--allow-env[=<VARIABLE_NAME>...]] [--deny-env[=<VARIABLE_NAME>...]]
[--allow-run[=<PROGRAM_NAME>...]] [--deny-run[=<PROGRAM_NAME>...]]
[--allow-ffi[=<PATH>...]] [--deny-ffi[=<PATH>...]] [--allow-hrtime] [--deny-hrtime] [--allow-all] [--no-prompt] [--inspect[=<HOST_AND_PORT>]]
[--inspect-brk[=<HOST_AND_PORT>]] [--inspect-wait[=<HOST_AND_PORT>]]
[--cached-only] [--location <HREF>] [--v8-flags[=<v8-flags>...]]
[--seed <NUMBER>] [--check[=<CHECK_TYPE>]] [--ignore=<ignore>...]
[--no-run] [--trace-leaks] [--doc] [--fail-fast[=<N>]] [--allow-none]
[--filter <filter>] [--shuffle[=<NUMBER>]] [--coverage[=<DIR>] [--parallel]
[--watch] [--watch-exclude[=<FILES>...]] [--no-clear-screen] [--junit-path <PATH>] [--reporter <reporter>] [--env[=<FILE>]] <FILES>... [-- [SCRIPT_ARG]...]
deno test -h|--help
描述 跳转到标题
评估给定的模块,运行所有使用 'Deno.test()' 声明的测试,并将结果报告到标准输出
deno test
目录参数将扩展到所有包含的文件,这些文件匹配 glob {__,_.,}test.{js,mjs,ts,mts,jsx,tsx}
测试运行器功能丰富,支持多种选项。
它可以在监视模式下执行 (--watch
),支持并行执行 (--parallel
),并且可以配置为以随机顺序运行测试 (--shuffle
)。此外,它还内置支持代码覆盖率 (--coverage
) 和泄漏检测 (--trace-leaks
)。
参数 跳转到标题
FILES
要运行的文件名列表
SCRIPT_ARG
传递给脚本文件的参数
选项 跳转到标题
-
--no-check[=<NO_CHECK_TYPE>]
跳过类型检查。如果提供了 '--no-check=remote' 的值,则会忽略来自远程模块的诊断错误。 -
--import-map <FILE>
从本地文件或远程 URL 加载 导入映射 文件。 -
-q, --quiet
抑制诊断输出 -
--no-remote
不解析远程模块 -
--no-npm
不解析 npm 模块 -
--node-modules-dir[=<node-modules-dir>]
启用或禁用对 npm 包使用本地 node_modules 文件夹。[可能的值:true,false] -
--vendor[=<vendor>]
UNSTABLE: 启用或禁用对远程模块使用本地 vendor 文件夹以及对 npm 包使用 node_modules 文件夹。[可能的值:true,false] -
-c, --config <FILE>
配置文件 可用于配置 deno 的不同方面,包括 TypeScript、代码风格检查和代码格式化。通常配置文件将被称为deno.json
或deno.jsonc
并自动检测;在这种情况下,此标志不是必需的。 -
--no-config
禁用自动加载配置文件。 -
-r, --reload[=<CACHE_BLOCKLIST>...]
重新加载源代码缓存(重新编译 TypeScript)--reload
重新加载所有内容--reload=jsr:@std/http/file-server
仅重新加载标准模块--reload=jsr:@std/http/file-server,jsr:@std/assert/assert-equals
重新加载特定模块--reload=npm:
重新加载所有 npm 模块--reload=npm:chalk
重新加载特定 npm 模块 -
--lock [<FILE>]
检查指定的锁文件。如果未提供值,则默认为当前工作目录中的 "deno.lock"。 -
--lock-write
强制覆盖锁文件。 -
--no-lock
禁用自动发现锁文件。 -
--cert <FILE>
从 PEM 编码文件加载证书颁发机构 -
--no-prompt
如果未传递所需的权限,则始终抛出异常 -
--inspect[=<HOST_AND_PORT>]
在 host:port 上激活检查器(默认:127.0.0.1:9229) -
--inspect-brk[=<HOST_AND_PORT>]
在 host:port 上激活检查器,等待调试器连接并在用户脚本开始时中断 -
--inspect-wait[=<HOST_AND_PORT>]
在 host:port 上激活检查器,并在运行用户代码之前等待调试器连接 -
--cached-only
要求远程依赖项已缓存 -
--location <HREF>
一些 Web API 使用的globalThis.location
的值 -
--v8-flags[=<v8-flags>...]
要查看所有可用标志的列表,请使用--v8-flags=--help
。使用此标志设置的任何标志都将附加到DENO_V8_FLAGS
环境变量之后 -
--seed <NUMBER>
设置随机数生成器种子 -
--check[=<CHECK_TYPE>]
设置类型检查行为。此子命令默认情况下会对本地模块进行类型检查,因此添加--check
是多余的。如果提供--check=all
的值,则将包含来自远程模块的诊断错误。或者,可以使用 'deno check' 子命令。 -
--ignore=<ignore>...
忽略文件 -
--no-run
缓存测试模块,但不运行测试 -
--trace-leaks
启用泄漏跟踪。在调试测试中泄漏的操作时很有用,但会影响测试执行时间。 -
--doc
对 JSDoc 和 Markdown 中的代码块进行类型检查 -
--fail-fast[=<N>]
在 N 个错误后停止。默认情况下,在第一次失败后停止。 -
--allow-none
如果未找到测试文件,则不返回错误代码 -
--filter <filter>
使用测试名称中的此字符串或模式运行测试 -
--shuffle[=<NUMBER>]
随机打乱测试运行的顺序 -
--coverage[=<DIR>]
将覆盖率配置文件数据收集到 DIR 中。如果未指定 DIR,则使用coverage/
。 -
--parallel
并行运行测试模块。并行度默认为可用 CPU 数量或 DENO_JOBS 环境变量中的值。 -
--watch
监视文件更改并自动重启进程。仅监视来自入口点模块图的本地文件。 -
--watch-exclude[=<FILES>...]
从监视模式中排除提供的文件/模式 -
--no-clear-screen
在监视模式下不清除终端屏幕 -
--junit-path <PATH>
将 JUnit XML 测试报告写入 PATH。使用-
写入标准输出,这是未提供 PATH 时的默认值。 -
--reporter <reporter>
选择要使用的报告器。默认为 'pretty'。[可能的值:pretty、dot、junit、tap] -
--env[=<FILE>]
不稳定:从本地文件加载环境变量。仅使用具有给定键的第一个环境变量。不会覆盖现有的进程环境变量。 -
-h, --help
打印帮助信息
权限选项
- `--allow-read[=- --deny-read[=<PATH>...]
拒绝 文件系统读取访问。可以选择指定拒绝的路径。示例:--deny-read
,--deny-read="/etc,/var/log.txt"
- --allow-write[=<PATH>...]
允许 文件系统写入访问。可以选择指定允许的路径。示例:--allow-write
,--allow-write="/etc,/var/log.txt"
- --deny-write[=<PATH>...]
拒绝 文件系统写入访问。可以选择指定拒绝的路径。示例:--deny-write
,--deny-write="/etc,/var/log.txt"
- --allow-net[=<IP_OR_HOSTNAME>...]
允许 网络访问。可以选择指定允许的 IP 地址和主机名,以及必要的端口。示例:--allow-net
,--allow-net="localhost:8080,deno.land"
- --deny-net[=<IP_OR_HOSTNAME>...]
拒绝 网络访问。可以选择指定拒绝的 IP 地址和主机名,以及必要的端口。示例:--deny-net
,--deny-net="localhost:8080,deno.land"
- --unsafely-ignore-certificate-errors[=<HOSTNAMES>...]
危险:禁用 TLS 证书验证
- --allow-env[=<VARIABLE_NAME>...]
允许 访问系统环境信息。可以选择指定可访问的环境变量。示例:--allow-env
,--allow-env="PORT,HOME,PATH"
- --deny-env[=<VARIABLE_NAME>...]
拒绝 访问系统环境信息。可以选择指定可访问的环境变量。示例:--deny-env
,--deny-env="PORT,HOME,PATH"
- --allow-sys[=<API_NAME>...]
允许 访问操作系统信息。可以选择通过函数名允许特定的 API。示例:--allow-sys
,--allow-sys="systemMemoryInfo,osRelease"
- --deny-sys[=<API_NAME>...]
拒绝 访问操作系统信息。可以选择通过函数名拒绝特定的 API。示例:--deny-sys
,--deny-sys="systemMemoryInfo,osRelease"
- --allow-run[=<PROGRAM_NAME>...]
允许 运行子进程。可以选择指定允许的可运行程序名称。示例:--allow-run
,--allow-run="whoami,ps"
- --deny-run[=<PROGRAM_NAME>...]
拒绝 运行子进程。可以选择指定拒绝的可运行程序名称。示例:--deny-run
,--deny-run="whoami,ps"
- --allow-ffi[=<PATH>...]
(不稳定) 允许加载动态库。可以选择指定 允许的目录或文件。示例:--allow-ffi
,--allow-ffi="./libfoo.so"
- --deny-ffi[=<PATH>...]
(不稳定) 拒绝 加载动态库。可以选择指定拒绝的目录或文件。示例:--deny-ffi
,--deny-ffi="./libfoo.so"
- --allow-hrtime
允许 高分辨率时间测量。注意:这可能会启用计时攻击和指纹识别。
- --deny-hrtime
拒绝 高分辨率时间测量。注意:这可能会阻止计时攻击和指纹识别。
- -A, --allow-all
允许 所有权限.
示例 跳转到标题
- 运行测试
deno test
- 在特定文件中运行测试
deno test src/fetch_test.ts src/signal_test.ts
- 在 glob 匹配的地方运行测试
deno test src/*.test.ts
- 运行测试并跳过类型检查
deno test --no-check
- 运行测试,在文件更改时重新运行
deno test --watch
- 重新加载所有内容
--reload
- 仅重新加载标准模块
--reload=jsr:@std/http/file-server
- 重新加载特定模块
--reload=jsr:@std/http/file-server,jsr:@std/assert/assert-equals
- 重新加载所有 npm 模块
--reload=npm:
- 重新加载特定 npm 模块
--reload=npm:chalk