【发布时间】:2020-03-25 11:35:43
【问题描述】:
背景
我正在使用process.env.<ENV NAME> 在某些类中设置变量。我需要在测试中设置它们以设置类变量,否则测试失败。
目前,我在beforeAll() 挂钩中设置变量。但是,我必须在许多测试文件中设置这些环境。如果没有必要,我不想在所有这些文件中复制此代码。
我认为在每次测试之前通过 Jest 设置文件设置它们是个好主意。在jest.config.js 我添加了setupFiles: ['<rootDir>/jestSetupTest.js']。在这个文件中,我添加了require('dotenv').config()。 .env 文件位于根目录中。
我在几个不同的目录中有测试文件:./src/graphql/__tests__ 和 ./src/utils/__tests__。
问题
正在设置环境,但任何正在运行的 Jest 测试都没有读取它们。
尝试过
我查看了this issue,它让我能够设置环境变量,但它与使用它们没有任何问题。
我已将 require('dotenv').config() 添加到使用 env 的测试文件中,但这仍然不起作用。这让我感到惊讶,我认为至少这会设置环境。
我在 Jest 上设置了 --debug,但这并没有显示是否设置了环境。
问题
有人知道发生了什么吗?或者我该如何进一步诊断这个问题?
根据上面的 SO 帖子,我了解到可以在 Jest 测试中设置和使用印象环境。为什么我无法使用它们?我的文件设置方式可能是配置问题吗?
【问题讨论】:
标签: testing jestjs environment-variables dotenv