将 dotenv 路径与 JEST 一起使用

2023-12-01

我正在尝试使用不同的 .env 文件进行 Jest 测试,但到目前为止我无法使其工作。

包.json:

{
  "name": "task-manager",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "module": "main.js",
  "scripts": {
    "start": "node -r esm src/index.js",
    "dev": "nodemon -r esm -r dotenv/config src/index.js dotenv_config_path=./config/.env",
    "test": "jest --setupFiles dotenv/config --watch"
  },
  "jest": {
    "testEnvironment": "node"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@sendgrid/mail": "^6.3.1",
    "bcryptjs": "^2.4.3",
    "dotenv": "^6.2.0",
    "esm": "^3.2.10",
    "express": "^4.16.4",
    "jest": "^24.3.1",
    "jsonwebtoken": "^8.5.0",
    "mongodb": "^3.1.13",
    "mongoose": "^5.4.17",
    "multer": "^1.4.1",
    "sharp": "^0.21.3",
    "supertest": "^4.0.0",
    "validator": "^10.11.0"
  },
  "devDependencies": {
    "@babel/core": "^7.3.4",
    "@babel/preset-env": "^7.3.4",
    "babel-jest": "^24.3.1"
  }
}

每次我运行 npm 测试时,使用的 MONGODB_URL 存储在我的 .env 文件中,而不是我的 test.env 文件中

我创建了一个 config 文件夹来存储 .env dev 文件以避免这种情况,但现在我的应用程序在运行 Jest 时不使用环境变量。

我在我的开发脚本中设置了一个配置路径,但我无法对 Jest 执行相同的操作。

预期行为:我只想使用不同的 MONGODB_URL 进行 Jest 测试。


接受的答案对我来说很困惑,我无法使其工作,必须参考这个问题:使用 .env 文件通过 jest 进行单元测试

这是我能够使其发挥作用的方法:

我的文件结构

-src/
-tests/
------/dotenv-config.js
-jest.config.js
-.test.env
-.env

jest.config.js

module.exports = {
  setupFiles: [
    "<rootDir>/tests/dotenv-config.js"
  ],
  roots: ['<rootDir>/src'],
  testEnvironment: 'node',
  testMatch: ['**/*.test.(ts|tsx)'],
  collectCoverageFrom: ['src/**/*.{ts,tsx}'],
  preset: 'ts-jest',
};

dotenv-config.js

require('dotenv').config({
  path: '.test.env',
});

Use debug选项来自https://www.npmjs.com/package/dotenv看看是否.test.env正确加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 dotenv 路径与 JEST 一起使用 的相关文章

随机推荐

  • Java中的重叠继承

    我有一个重叠的继承层次结构 系统了解可以是客户 提供商和代理的人员 一个人必须属于这些类别之一 但可以属于两个或三个 即一个人可以同时是客户和提供者 在数据库中 我认为问题已经解决 每个类一个表 人员 客户端 提供者和代理表 以及从子类表的
  • 从 Font Awesome 中提取 SVG

    我想从中获取 SVG 路径数据字体真棒字形 以便我可以在 HTML 中直接将它们用作 SVG 我认为这就像复制粘贴路径数据一样简单fontawesome webfont svg 但是当我在 HTML 中使用它时 符号全部呈现颠倒 有人知道为
  • LINQ to Entities - 如何在调用 SaveChanges() 后最好地获取 IDENTITY 值

    该网站上提出了许多与执行插入后检索 IDENTITY 相关的问题 我们获取身份的方法是在调用 SaveChanges 之后立即进行以下调用 context MyClass OrderByDescending c gt c Id FirstO
  • Angular7输入类型文件上传不起作用

    目前我正在工作 Angular Angular 7 输入类型 文件 不工作 Angular6 工作正常 Angular 6提交输入文件类型数据 我会得到这样的字段列表 但 Angular 7 只能得到这样的图像路径 只有我将 Angular
  • 使用 odeint 函数定义

    很菜鸟的问题 所以请耐心听我说 我按照这里给出的例子 gt http www codeproject com Articles 268589 odeint v2 Solving ordinary Differential equations
  • gensim - Doc2Vec:在英语维基百科上训练时出现 MemoryError

    我从英语维基百科转储中提取了 145 185 965 个句子 14GB 我想根据这些句子训练 Doc2Vec 模型 不幸的是我 只有 32GB RAM 并且得到了内存错误当尝试训练时 即使我将 min count 设置为 50 gensim
  • 未定义的类“FirebaseUser”

    我是颤振新手 我有一个问题Firebase 身份验证 Google 身份验证 The Firebase用户没有定义 代码 FirebaseAuth auth FirebaseAuth instance GoogleSignIn google
  • 字符串是不可变的,那么replace()是如何工作的呢?

    我试图用最后一个字母 字符替换字符串的第一个字母 字符 用第一个字母 字符替换最后一个字母 字符 例如 abcd gt dbca Java 中的字符串是不可变的 那么我们如何解释这个程序的行为呢 请看一下最终输出 str1 没有字符 a 但
  • R 中的分层随机抽样

    我正在努力使用具有 3078 个观察值的分层随机抽样来创建大小为 100 的分层样本 分层随机抽样必须满足的条件是 FARMS92600 为 分层 并采用比例分配 当我遵循分层函数时 我不明白如何继续 https gist github c
  • 如何在 SwiftUI 中检测点击手势位置?

    适用于 SwiftUI 而不是普通 UIKit 非常简单的示例代码 例如在灰色背景上显示红色框 struct ContentView View State var points CGPoint CGPoint x 0 y 0 CGPoint
  • 如何应用将向量返回到每个 numpy 数组元素的函数(并获取更高维度的数组)

    我们直接用代码写吧 注意 我将映射器 原始示例使用 x gt x 2 x 3 x 仅作为示例 编辑为通用黑盒函数 这导致了麻烦 import numpy as np def blackbox fn x I can t be changed
  • 将 Symfony2 缓存存储在其他地方?

    有没有办法将 symfony 2 缓存 应用程序 缓存 存储在文件系统以外的其他地方 Memcache S3 还是其他什么 有内置选项吗 您只能通过重载 AppKernel 类中的 getCacheDir 方法将其移出项目目录 将其移至 M
  • 为 UIWebView 请求设置 Cookie

    我想嵌入一个UIWebView进入我的 MonoTouch 应用程序中尚未本地实现的区域 为了对网站进行身份验证 我想设置一个包含当前会话密钥的 cookie 我尝试创建一个NSDictionary与 Cookie 的属性 然后创建一个新的
  • 是否可以修补 File::Find::Rule 以自动处理文件名字符编码/解码?

    假设我有一个名为 UNICODE 0xE6 UTF8 0xC3 0xA6 在当前目录中 然后 我想用File Find Rule找到它 use feature qw say use open qw std utf8 use strict u
  • CMake:在静态库中包含库依赖项

    我正在构建一个staticCMake 中的库 它依赖于许多其他静态库 我希望它们全部包含在输出 lib a 文件中 这样我就可以向客户发送一个大的 lib 文件 在 Visual Studio 2010 中有一个选项 链接库依赖关系 它正是
  • 根据滚动逐渐改变背景颜色

    我有一个滚动视图 当它向下滚动时 背景颜色会改变 我知道我可以使用 UIView 动画来实现此自动化 但我想根据滚动的百分比设置颜色 我想设置 0 和 100 颜色 并且当前颜色将被计算并设置为scrollViewDidScroll 0 5
  • Python中访问类变量的性能

    我想知道访问类变量 字典 时性能是否有任何差异在同一个类的方法内 using self class variable dict add some key some value and ClassName class variable dic
  • 如何将服务器响应日期转换为本地时区?

    在 api 调用响应中 我得到了不同时区的日期 我想将其转换为用户的本地时区 并且用户可以从 ios 时区列表中选择任何时区 这都是本地的 我们永远不会将选定的用户时区发送到服务器 在进行任何 api 调用时 假设我正在创建一个事件 并在选
  • 在 Firebase/Swift 上为两个匹配的用户创建聊天室的首选方式是什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在努力在 Firebase 100 上创建 Tinder 克隆 从身份验证到实时聊天 我已经成功地在消息视图控制器的表格视图上向用户展示了他们共同感兴趣的匹配项 现在我的问题
  • 将 dotenv 路径与 JEST 一起使用

    我正在尝试使用不同的 env 文件进行 Jest 测试 但到目前为止我无法使其工作 包 json name task manager version 1 0 0 description main index js module main j