背景
我正在使用process.env.<ENV NAME>
在某些类中设置变量。我需要在测试中设置它们以设置类变量,否则测试将失败。
当前,我在beforeAll()
钩子中设置变量。但是,有许多测试文件必须在其中设置这些env。如果不需要,我不想在所有这些文件中复制此代码。
我认为最好在每次测试之前通过Jest设置文件进行设置。在jest.config.js
中,我添加了setupFiles: ['<rootDir>/jestSetupTest.js']
。在此文件中,我添加了require('dotenv').config()
。 .env
文件位于根目录中。
我在两个不同的目录中分别有测试文件:./src/graphql/__tests__
和./src/utils/__tests__
。
问题
正在设置env,但是任何正在运行的Jest测试都不会读取它们。
尝试
我调查了this issue,这使我可以设置环境变量,但与使用它们有关的问题无关。
我已将require('dotenv').config()
添加到使用envs的测试文件中,但这仍然无法正常工作。这让我感到惊讶,我认为至少这会设置环境。
我在Jest上设置了--debug
,但没有显示是否设置了环境。
问题
有人知道发生了什么吗?或者如何进一步诊断这个问题?
我得到的印象环境可以根据上述SO帖子在Jest测试中设置和使用。为什么我不能使用它们?可能是我的文件设置方式出现配置问题吗?