将自定义参数传递给 jest 时无法获取完整的 process.argv 列表

问题描述

假设我在 __test__ 文件夹下面有 2 个测试文件

====
argv1.test.js
console.log("process.argv1 = ",process.argv)
====
argv2.test.js
console.log("process.argv2 = ",process.argv)
====

如果我运行 npx jest argv1,可以获得完整的参数

process.argv1 =  [
      'C:\\Program Files\\nodejs\\node.exe','D:\\work\\git\\nodenewman\\node_modules\\jest\\bin\\jest.js','argv1'
    ]

同样的情况发生在 npx jest argv2

process.argv2 =  [
      'C:\\Program Files\\nodejs\\node.exe','argv2'
    ]

但是如果我运行 npx jest argv 来运行所有 argv*** 测试文件,那么我将无法再获得完整的参数,第三个参数消失了,第二个参数也从 jest.js 更改为 processChild。 js

 process.argv1 =  [
        'C:\\Program Files\\nodejs\\node.exe','D:\\work\\git\\nodenewman\\node_modules\\jest-worker\\build\\workers\\processChild.js'
      ]

 process.argv2 =  [
        'C:\\Program Files\\nodejs\\node.exe','D:\\work\\git\\nodenewman\\node_modules\\jest-worker\\build\\workers\\processChild.js'
      ]

如果运行命令 npx jest argv 来运行所有匹配的 argv*** 测试文件,是否有任何方法可以获得完整参数? 谢谢。

解决方法

我找到了解决这个问题的解决方案,这个玩笑将使用 jest.js 而不是 processChild.js 运行,然后我们可以获得所有参数。分享给大家,希望能帮到大家。

//add this line to file jest.config.js    
maxWorkers: 1,