Jest v22.0.6总是将process.env数组转换为String

时间:2018-02-16 16:03:44

标签: javascript reactjs testing tostring jest

我目前正在使用yarn 1.3.2并尝试从jest 22.0.5迁移到最新版本,但我确实从v22.0.6发现了问题

这是我们非常简单的jest.config.js

module.exports = {
    setupFiles: ['./tools/test/setup.js']
}

这是我们用来调试此问题的更简单setup.js

const array = ['en', 'fr']
process.env.ARRAY = array
console.log('process.env.ARRAY', process.env.ARRAY)

在我们的一个测试中,我们循环一个process.env数组,这是我们的输出

22.0.5

console.log tools/test/setup.js:3
    process.env.ARRAY ['en', 'fr']

22.0.6

console.log tools/test/setup.js:3
    process.env.ARRAY en,fr

似乎要使用toString()

转换每个process.env数组

1 个答案:

答案 0 :(得分:1)

这不是Jest特有的,它只是process.env在Node.js中的工作方式。

引用documentation

  

在process.env上分配属性会隐式地将值转换为字符串。

因此,当您将数组['en', 'fr']分配给process.env.ARRAY时,它会转换为字符串en,fr

如果您需要将此字符串转换回代码中其他位置的数组,则可以使用split

const array = process.env.ARRAY.split(',');