You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在package.json的npm test脚本中为AVA配置固定位置参数

需求实现结论

这个需求完全可以实现,你之前配置不生效的核心问题是多写了不必要的第二个--分隔符。


问题根因

AVA官方要求仅用1个-- 分隔AVA本身的配置参数和要传给测试文件的位置参数,你写了2个--会导致第二个--被识别为传给测试文件的第一个参数,自然不符合预期。


最简适配方案

直接修改package.json的test脚本,把固定的前两个参数写到单个--后面即可:

{
  "scripts": {
    "test": "ava -v --serial --timeout='2m' -- <替换为你的实际arg1> <替换为你的实际arg2>"
  }
}

执行时遵循npm的参数传递规则,把动态的第三个参数放在--后传入:

npm test -- <arg3>

npm会自动把你传入的<arg3>拼接到脚本命令末尾,实际传给测试文件的参数就是预设的前两个+动态传入的第三个,完全符合要求。


进阶:省略执行时的--

如果你连执行时的--都不想加,可以用封装脚本实现全系统兼容的无--调用:

  1. 项目根目录新建test-runner.js
const { execSync } = require('child_process')
const arg3 = process.argv[2]
execSync(`npx ava -v --serial --timeout='2m' -- 你的固定arg1 你的固定arg2 ${arg3}`, { stdio: 'inherit' })
  1. 修改package.json的test脚本
{
  "scripts": {
    "test": "node test-runner.js"
  }
}

之后就可以直接执行npm test <arg3>使用。

内容的提问来源于stack exchange,提问作者jialeee17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:15:03