node-tap
mpde-tap 是可以对JavaScript代码测试的工具,可以进行代码覆盖率、测试报告、错误处理、并行测试、对JSX, Type Script, ESM, Flow 的支持以及功能齐全的断言集都包含在其中。无需选择任何其他内容。只需编写一些测试。
该翻译是机翻+人工协助翻译
官方地址: https://node-tap.org/docs/cli/
node-tap命令行帮助文档翻译
用法:
tap [options] [<files>]
TAP v16.2.0 -一个测试任何协议的JavaScript库
执行所有文件并将其输出解释为TAP格式化的测试结果数据。
如果没有指定文件,TAP将搜索测试文件,并运行这些文件。 (请参阅下面的“-test-regex”。)
要解析来自stdin的TAP数据,请指定“-”作为文件名。
短选项以gnu风格解析,因此例如’-bCRspec’将等同于’–bail --no-color --reporter=spec’
如果明确地提供了–check-coverage或–coverage-report选项,并且没有指定测试文件,那么覆盖报告或覆盖检查将对来自上次测试运行的数据运行。
从未为stdin启用覆盖率。
更多的文档请访问:https://www.node-tap.org/
Options:
-R<type> --reporter=<type>
使用指定的报告器。使用颜色时默认为"base",禁用颜色时默认为"tap"。
除了report和tap-mocha-reporter模块提供的内置报告程序之外,reporter选项还可以指定通过require()加载的命令行程序或模块。
命令行程序在其stdin上接收原始TAP输出。
通过require()加载的模块必须导出一个可写流类或React。组件子类。
可写流被实例化并管道进入。React组件使用Ink渲染,tap={tap}是它们唯一的属性。
可用内置报告器:classic doc dot dump json jsonstream landing list markdown min nyan progress silent spec tap xunit base specy terse
-r<arg> --reporter-arg=<arg>
传递给命令行报告器的参数。使用内置报表或模块报表时忽略。可多次设置。
-F --save-fixture 不清理由t.testdir()创建的设备
--no-save-fixture 关闭 --save-fixture 标志
-b --bail 第一次失败就退出
-B --no-bail 不要在第一次失败时退出(默认)
--comments 将所有TAP注释打印到process.stderr
--no-comments 关闭 --comments 标志
-c --color 使用颜色(默认TTY)
-C --no-color 不要使用颜色(非tty的默认值)
-S --snapshot 设置为 为't.matchSnapshot()'断言生成快照文件。
--no-snapshot 关闭 --snapshot 标志
-w --watch 监控测试套件或覆盖程序中的变化。
通常只运行一次套件,然后在文件更改时只重新运行套件中所需的部分。
打开REPL以触发测试并执行各种操作。
--no-watch 关闭 --watch 标志
-n --changed 仅对自上次运行以来已更改的文件运行测试。
这需要启用覆盖率,因为TAP使用NYC的进程信息跟踪来监控哪个测试加载了哪个文件。
如果没有先前的测试运行数据存在,那么将运行所有的默认文件,就像没有指定--changed 一样。
--no-changed 关闭 --changed 标志
-s<file> --save=<file> 如果<file>存在,那么它应该是要运行的以行分隔的测试文件列表。如果<file>不存在,则运行所有命令行位置参数。
运行测试文件集之后,任何失败的测试文件都被写回保存文件。
这样,重复运行<file>将重新运行失败,直到所有失败都通过,然后再次运行所有测试。
这是一个好主意'.gitignore'文件用于这个目的,因为它会搅动很多。
-O --only 只运行带有 {only: true} 选项的测试 或者是使用 t.only(...) 函数创建的测试
--no-only 关闭 --only标志
-g<pattern> --grep=<pattern>
只运行匹配指定模式的子测试。
模式与每个文件中的顶级子测试相匹配。若要筛选后续级别的测试,请多次指定此选项。
要指定正则表达式标志,请像JavaScript正则表达式字面量那样格式化模式。例如:'/xyz/i'用于不区分大小写的匹配。
可多次设置。
-i --invert 将匹配反转为 --grep模式(像 grep -v)
-I --no-invert 关闭--invert 标志
-t<n> --timeout=<n> 测试文件在n秒后超时。默认为30,即TAP_TIMEOUT环境变量的值。设置为0允许测试永远运行。
当测试进程在顶级TAP对象上调用t.setTimeout(n)时,它还会更新该特定进程的这个值。
-T --no-timeout 不要让测试超时。相当于 --timeout=0.
--files=<files> 指定测试集的另一种方法,而不是使用位置参数。
作为选项支持,这样测试文件参数可以在.taprc和package.json文件中指定。可多次设置。
运行并行测试
Tap可以并行运行多个测试文件。这会更快的运行测试,但如果您的测试文件不是设计成相互独立的,那么也会导致问题。
要将一组文件指定为可以并行运行,请将它们添加到包含名为“tap-parallel-ok”文件的文件夹中。
要指定一组文件不允许并行运行,请将它们添加到包含名为“tap-parallel-not-ok”文件的文件夹中。
这些文件夹可能相互嵌套,TAP将会做正确的事情。
-j<n> --jobs=<n> 并行运行最多n个测试文件。
默认情况下,这将被设置为系统上的cpu数量。
设置 --jobs=1以完全禁用并行化。
-J --jobs-auto 并行运行测试文件(自动计算)
这是v13版本的默认值,所以这个选项几乎没有什么作用,除非在较早的选项(或配置文件)对并行化进行了不同的设置时,它可以将并行化重新设置为默认值。
--before=<module> 在执行测试文件之前要运行的节点程序。
使用非零状态代码或信号退出将使测试运行失败,并错误地退出进程。
--after=<module> 测试完成后要执行的节点程序。
即使系列中的一个测试因紧急援助而失败,也会运行它,但如果 --before脚本失败,它将*不*运行。
使用非零状态代码或信号退出将使测试运行失败,并错误地退出进程。```
代码覆盖选项:
Tap在内部使用nyc模块来提供代码覆盖率,因此不需要自己调用nyc或直接依赖它,除非您想在其他场景中使用它。
--100 实施全面覆盖,100%。将分支、语句、函数和行设置为100。
这是默认设置。 为了指定一个下限(或无上限),将--lines,--branches,--functions,或者——语句设置为低于100的数 字,或者使用--no-check coverage禁用覆盖率检查,或者使用--no-coverage完全禁用覆盖率。
-M<module> --coverage-map=<module>
提供导出单个函数的节点模块的路径。该函数将一个测试文件作为参数,并在该文件运行时返回一个文件数组,以检测覆盖率。
在单元测试应该覆盖被测系统的单个部分的情况下,这很有用。
返回“null”以不覆盖此测试中的任何文件。
返回一个空数组[]来覆盖nyc默认拉入的集合。也就是说,返回[]等同于根本不使用覆盖图。
--no-coverage-map 不要使用覆盖图。主要用于禁用配置文件中设置的覆盖率映射。
-cov --coverage 使用“nyc”捕获覆盖率信息这是默认启用的。
如果设置了COVERALLS_REPO_TOKEN环境变量,并且安装了'coveralls'模块,那么覆盖率将被发送到coveralls。io服务。
请注意,TAP不会自动安装工作服,要使用此功能,您的项目中必须已有工作服。
-no-cov --no-coverage 不要捕获覆盖率信息。请注意,如果纽约市已经加载,那么覆盖率信息仍将被捕获。
--coverage-report=<type>
使用指定的伊斯坦布尔/纽约记者类型输出报道信息。
当在命令行上运行时,默认值为“text”,或当管道连接到工作服时,默认值为“text lcov”。
如果使用“html”,则运行后报告将在web浏览器中打开。
这可以在包含覆盖率的测试运行后的任何时间自行运行。
内置报告器: clover cobertura html json json-summary lcov lcovonly none teamcity text text-lcov text-summary
可以设置多次
--no-coverage-report 即使生成了覆盖率信息,也不要输出覆盖率报告。
--browser 生成html覆盖率报告时打开浏览器。(这是默认行为)
--no-browser 生成html覆盖率报告后不要打开web浏览器
-pstree --show-process-tree
启用覆盖并显示衍生进程的树。
--no-show-process-tree 关闭 --show-process-tree 标志
覆盖范围和选择:
这些选项使您能够指定,如果不满足给定的覆盖率级别,测试将失败。设置以下任何选项都将触发–coverage和–check coverage标志。
最严格的是–100。您可以在以下位置找到运行测试的项目列表:https://www.node-tap.org/100
如果以这种方式运行测试,请将项目添加到列表中。
--check-coverage 检查覆盖范围是否在提供的阈值范围内。显式设置将默认值--coverage设置为true。
这可以在包含覆盖率的测试运行后的任何时间自行运行。
--no-check-coverage 关闭--check-coverage标志
--branches=<n> 必须覆盖的分支机构的百分比
--functions=<n> 必须涵盖的功能百分比
--lines=<n> 必须覆盖多大百分比
--statements=<n> 必须涵盖的报表百分比
其他选择:
-h --help 显示这个有用的输出
--no-help 关闭--help标志
-v --version 显示此程序的版本。
--no-version 关闭--version标志
--test-regex=<pattern> 一种正则表达式模式,指示在未提供位置参数的情况下要运行的测试。
默认情况下,TAP将搜索所有以.ts, .tsx, .js, .jsx, .cjs, .mjs结尾的文件,在名为test、tests或__tests__的顶级文件夹中,或在支持的扩展名之前以'.spec.'或'.test.'结尾的文件,或名为'test.(js,jsx,...)'或'tests.(js,jsx,...)'的顶级文件。
即,此选项的默认值为: ((\/|^)(tests?|__tests?__)\/.*|\.(tests?|spec)|^\/?test s?)\.([mc]js|[jt]sx?)$
请注意,.jsx文件只会在启用--jsx时运行,.ts文件只会在启用——ts时运行,.tsx文件只会在同时启用--ts和--jsx时运行。
--test-ignore=<pattern>
如果未提供位置参数,请使用提供的正则表达式模式排除否则将由--test-regexp匹配的测试.
默认为“$”,故意不匹配。
注意:名为tap-snapshot、node_modules、.git和.hg的文件夹总是被排除在默认的测试文件集之外。如果希望在这些文件夹中运行测试,则将命令行上的测试文件命名为位置参数。
--test-arg=<arg> 将参数传递给测试由TAP命令行可执行文件生成的文件。可以多次指定该参数,以将多个参数传递给测试脚本。可以设置多次
--test-env=<key[=<value>]>
传递一个key=value(即--test-env=key=value)来设置运行测试的进程中的环境变量。
如果没有提供值,则确保在环境中不设置该键。要设置空字符串的键,使用--test-env=key=
可以设置多次
--nyc-arg=<arg> 在启用覆盖率的情况下运行子进程时,将参数传递给nyc。可以多次指定,以将多个参数传递给纽约市。可以设置多次
--node-arg=<arg> 将参数传递给所有子进程中的节点二进制文件。
运行“node--help”查看所有相关参数的列表。可以多次指定该参数以将多个参数传递给节点。
可以设置多次
-gc --expose-gc 向Node.js测试公开gc()函数
--debug 打开调试模式
--no-debug 关闭--debug标志
--debug-brk 使用node --debug-brk运行JavaScript测试
--harmony 在JavaScript测试中启用所有和谐标志
--strict 在“使用严格”模式下运行JS测试
--flow 删除流类型
--no-flow 关闭--flow标志
--ts 自动加载.ts和.tsx测试ts-node模块。
注意:您必须自己提供ts节点作为依赖项,TAP不会自动绑定它。
--no-ts 关闭--ts标志
--jsx 使用TAP的捆绑导入.jsx加载程序自动加载jsx测试(默认值:false)
--no-jsx 关闭--jsx标志
--nyc-help 打印nyc使用横幅. 用于查看选项 --nyc-arg.
--no-nyc-help 关闭--nyc帮助标志
--nyc-version TAP使用的纽约市的打印版本。
--no-nyc-version 关闭--nyc版本标志
--parser-version 打印tap使用的tap解析器版本。
--no-parser-version 关闭--parser version标志
--versions 打印TAP、nyc和TAP解析器的版本
--no-versions 关闭--versions标志
--dump-config 以YAML格式转储配置选项
--no-dump-config 关闭--dump config标志
--rcfile=<file> 从指定路径的YAML-formatting文件加载任何这些配置。在当前工作目录中默认为.taprc。
运行“tap--dump config”查看可用选项和格式。
--libtap-settings=<module>
一个模块,用于导出要分配给“libtap/settings”的字段对象。这些是用于修改tap内部运行时行为的高级配置选项。
模块路径是相对于当前工作目录解析的。
允许的字段: rmdirRecursive, rmdirRecursiveSync,
StackUtils, stackUtils, output, snapshotFile.
有关预期值和用法,请参阅libtap文档 https://github.com/tapjs/libtap
-o<file> --output-file=<file>
将原始抽头输出发送到指定文件。Reporter输出仍将打印到stdout,但该文件将包含原始点击,以便稍后回放或分析。
-d<dir> --output-dir=<dir>
将原始抽头输出发送到指定目录。一个单独的。将为运行的每个测试文件创建tap文件。Reporter输出仍将打印到stdout,但这些文件将包含原始点击,以便稍后重播或分析。
创建的文件将与运行的测试文件的文件夹结构和文件名相匹配,但带有“”。点击附加到文件名中的。
-- 停止解析标志,并将任何其他命令行参数视为文件名。
环境变量:
COVERALLS_REPO_TOKEN 设置为工作服令牌以自动将覆盖信息发送到https://coveralls.io,如果项目中安装了“工作服”模块。
TAP_CHILD_ID 当通过测试运行程序运行时,测试文件将该值设置为一个数值。它也以'tap.childid'的形式出现在根TAP对象上。
TAP_SNAPSHOT 设置为'1',为't.matchSnapshot()'断言生成快照文件。
TAP_RCFILE 一个可以设置上述选项的yaml格式文件。默认为./.taprc
TAP_LIBTAP_SETTINGS 导出字段以覆盖默认libtap设置的文件路径(相对于当前工作目录)
TAP_TIMEOUT --timeout选项的默认值。
TAP_COLORS 设置为“1”强制颜色输出,或设置为“0”阻止颜色输出。
TAP_BAIL 在第一次测试失败时进行救援。设置“--bailout”时在内部使用。
TAP 设置为“1”可强制标准点击输出,并禁止任何记者。在运行子测试时使用,以便测试线束可以解析其输出。
TAP_DIAG 设置为“1”,默认情况下显示通过测试的诊断。设置为“0”,默认情况下不显示测试失败的诊断。如果这两个值中没有一个,则默认情况下,如果测试失败,而不是通过测试,则会打印诊断。
TAP_BUFFER 默认情况下,设置为“1”以缓冲模式运行子测试。
TAP_DEV_LONGSTACK 设置为“1”以在堆栈跟踪中包括节点抽头内部。默认情况下,仅当当前工作目录是TAP项目本身时,才会包含这些目录。
请注意,节点内部始终被排除在外。
TAP_DEBUG 设置为“1”以打开调试模式。
NODE_DEBUG 包括“点击”以打开调试模式。
TAP_GREP 应用于根级别测试对象的grep模式的“\n”分隔列表。(这是关于“--grep”选项如何工作的实现细节。)
TAP_GREP_INVERT 设置为“1”可反转TAP_GREP中图案的含义。(有关“--invert”标志如何工作的实施细节。)
TAP_ONLY 设置为“1”可设置--only标志
TAP_TS 设置为“1”以启用自动打字脚本支持
TAP_JSX 设置为“1”以启用自动jsx支持
配置文件:
您可以使用上述任何选项创建yaml文件。默认情况下,文件位于./.taprc将被加载,但–rcfile选项或TAPrcfile环境变量可以修改它。
运行“tap --dump-config”查看该文件中可以设置的内容列表。每个键对应于上面的一个选项。