本页内容

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.jsondeno.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[=...]`\ 允许 [文件系统读取访问](https://deno.land/manual/basics/permissions)。可以选择指定允许的路径。示例:`--allow-read`,`--allow-read="/etc,/var/log.txt"`

- --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