AVA测试框架命令行使用完全指南

AVA测试框架命令行使用完全指南

ava Node.js test runner that lets you develop with confidence 🚀 ava 项目地址: https://gitcode.com/gh_mirrors/ava/ava

前言

AVA是一个轻量级且高效的JavaScript测试运行器,其命令行工具提供了丰富的功能选项。本文将全面解析AVA命令行工具的使用方法,帮助开发者更好地利用AVA进行测试工作。

基本命令结构

AVA命令行工具提供了三个主要命令:

  1. 默认测试命令:运行测试文件

    ava [<pattern>...]
    
  2. 调试命令:激活Node.js调试器并运行单个测试文件

    ava debug [<pattern>...]
    
  3. 缓存清理命令:删除AVA保留的临时文件和状态

    ava reset-cache
    

常用选项详解

测试控制选项

  • --concurrency / -c:设置同时运行的最大测试文件数(默认为CPU核心数)
  • --fail-fast:第一个测试失败后立即停止
  • --serial / -s:串行运行测试(禁用并行执行)
  • --timeout / -T:设置全局超时时间(支持毫秒或可读格式如10s、2m)

输出控制选项

  • --color:强制彩色输出
  • --tap / -t:生成TAP格式输出
  • --verbose / -v:启用详细输出(默认)
  • --watch / -w:文件变更时重新运行测试

测试匹配选项

  • --match / -m:仅运行标题匹配的测试(可重复使用)
  • --update-snapshots / -u:更新快照

测试文件匹配模式

AVA会自动查找以下模式的测试文件:

test.js
src/test.js
source/test.js
**/test-*.js
**/*.spec.js
**/*.test.js
**/test/**/*.js
**/tests/**/*.js
**/__tests__/**/*.js

默认忽略的文件

AVA会自动忽略以下文件:

  • node_modules目录中的所有文件
  • _开头的文件或目录
  • 特定的辅助文件和夹具文件目录(如__helper____fixtures__等)

高级使用技巧

按标题筛选测试

使用--match选项可以基于测试标题进行筛选:

# 标题以"foo"结尾的测试
ava --match='*foo'

# 标题以"foo"开头的测试
ava --match='foo*'

# 标题包含"foo"的测试
ava --match='*foo*'

# 排除标题包含"foo"的测试
ava --match='!*foo*'

注意:匹配模式优先级高于.only修饰符,只有具有显式标题的测试才会被匹配。

按行号运行测试

AVA支持通过指定行号来运行特定测试:

# 运行test.js文件的第2行和第9行的测试
ava test.js:2,9

# 运行test.js文件4-7行的测试
ava test.js:4-7

# 混合使用单个行号和范围
ava test.js:4,9-12

使用TAP报告器

AVA支持TAP格式输出,可以与其他TAP报告器配合使用:

ava --tap | tap-nyan

注意事项

  1. 当通过npm scripts运行测试时,标志参数需要使用--分隔:

    npm test -- --verbose
    
  2. --node-arguments选项用于向工作进程传递额外的Node.js参数,请确保只传递可信值:

    ava --node-arguments="--throw-deprecation --zero-fill-buffers"
    
  3. 定期清理缓存可以解决一些奇怪的问题:

    ava reset-cache
    

结语

掌握AVA命令行工具的使用可以显著提高测试效率。本文涵盖了从基础到高级的各种用法,建议开发者根据实际需求选择合适的选项组合。对于大型项目,合理使用并发控制和测试筛选功能尤为重要。

ava Node.js test runner that lets you develop with confidence 🚀 ava 项目地址: https://gitcode.com/gh_mirrors/ava/ava

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐皓锟Godly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值