如何从 vitest 测试访问我的 .env 变量?

问题描述 投票:0回答:2

我正在尝试将我的测试从 jest 迁移到 vitest。我有一个测试套件,它使用 dotenv 包来引入我的 .env 变量。

我的测试套件中有这个

beforeAll(async () => {
        vi.clearAllMocks();
        cleanUpMetadata();
        dotenv.config();
        controller = new UserController(container.get<UserServiceLocator>(Symbol.for("UserServiceLocator")),
            container.get<EmailServiceLocator>(Symbol.for("EmailServiceLocator")));
    });

这是测试中具有未定义变量的代码

let requestObj = httpMocks.createRequest({
            cookies: {
                token: jwt.sign({ username: "testusername" }, process.env.JWT_SECRET_KEY!)
            }
        });

为了让我的 .env 变量可以访问,我必须做一些特别的事情来测试吗?

dotenv vitest
2个回答
5
投票

您可以将 dotenv 包(如果这就是您正在使用的)包含到 vitest.config.ts 文件中,它将如下所示:

import { defineConfig } from 'vitest/config';
import { resolve } from 'path';

export default defineConfig({
  root: '.',
  esbuild: {
    tsconfigRaw: '{}',
  },
  test: {
    clearMocks: true,
    globals: true,
    setupFiles: ['dotenv/config'] //this line,
  },
  resolve: {
    alias: [{ find: '~', replacement: resolve(__dirname, 'src') }],
  },
});

0
投票
import.meta.env.%VARIABLE_NAME%

从这里得到它:https://stackoverflow.com/a/70711231

© www.soinside.com 2019 - 2024. All rights reserved.