我正在尝试将我的测试从 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.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') }],
},
});
import.meta.env.%VARIABLE_NAME%