乐闻世界logo
搜索文章和话题

How to I access my .env variables from a vitest test?

2 个月前提问
2 个月前修改
浏览次数32

1个答案

1

在使用 Vitest 进行测试时,访问 .env 文件中的环境变量可以通过几种方法实现。以下是详细的步骤和示例:

1. 使用 dotenv

首先,确保安装了 dotenv 库。这个库可以帮助我们加载 .env 文件中的变量到 process.env 中。

安装 dotenv:

bash
npm install dotenv

在测试文件中使用:

javascript
import { describe, it, expect } from 'vitest'; import dotenv from 'dotenv'; dotenv.config(); // 加载.env文件 describe('测试环境变量', () => { it('应该可以获取环境变量', () => { const api_url = process.env.API_URL; expect(api_url).toBeDefined(); expect(api_url).toBe('https://api.example.com'); }); });

2. 使用 Vitest 的环境变量配置

Vitest 允许在其配置文件中直接设置环境变量。如果你使用的是 vitest.config.js,你可以在配置中添加环境变量。

编辑 vitest.config.js:

javascript
import { defineConfig } from 'vitest/config'; export default defineConfig({ env: { API_URL: 'https://api.example.com', }, });

在测试中使用这些环境变量:

javascript
import { describe, it, expect } from 'vitest'; describe('测试环境变量', () => { it('应该可以获取配置中的环境变量', () => { const api_url = process.env.API_URL; expect(api_url).toBe('https://api.example.com'); }); });

3. 结合 dotenv 自动加载

如果你不想在每个测试文件中重复加载 dotenv,可以在 vitest.config.js 中配置自动加载。

更新 vitest.config.js:

javascript
import { defineConfig } from 'vitest/config'; import dotenv from 'dotenv'; dotenv.config(); // 自动加载.env文件 export default defineConfig({ // 其他配置... });

这样,每次运行测试时,Vitest 会自动加载 .env 文件,无需在每个测试文件中调用 dotenv.config()

总结

选择哪种方法取决于你的项目需求和个人偏好。如果你的环境变量主要用于测试,直接在 Vitest 配置中设置可能更为方便。如果环境变量也被应用程序的其他部分使用,那么使用 dotenv 库则更加灵活。

希望这能帮助你理解如何在 Vitest 测试中有效地管理和访问环境变量!如果有任何问题,欢迎继续询问。

2024年7月23日 12:42 回复

你的答案