开玩笑测试不使用 dotenv 读取环境变量

2023-12-01

我正在对一个调用环境变量的函数运行测试,但未定义。 我尝试过但不起作用的解决方案:

1/ add require('dotenv').config({path:'../.env'})在我的测试文件中

2/ 在 package.json 中传递全局变量

"jest": {
    "globals": {
      "USER_ENDPOINT":"xxx",
      "USER_KEY":"xxx"
  }
}

3/在package.json中的测试命令中传递我的变量

"test": "USER_ENDPOINT:xxx USER_KEY:xxx jest --watchAll --detectOpenHandles"

4/ 在我的测试文件中的 beforeEach() 中添加了一个 Object.assign

beforeEach(() => {
        process.env = Object.assign(process.env, {USER_ENDPOINT:"xxx", USER_KEY:"xxx" });
});

并收到错误“Jest 遇到意外令牌”

5/我在根目录下创建了一个 jest.config.js 文件

require('dotenv').config({path:'./.env'});
module.exports = {
    globals: {
        USER_ENDPOINT:"xxx", 
        USER_KEY:"xxx"
    }
};

此处建议了大多数解决方案:https://github.com/vuejs/vue-test-utils/issues/193但都不起作用


它按预期工作dotenv包加载环境变量。

E.g.

index.test.js:

const path = require('path');

require('dotenv').config({ path: path.resolve(__dirname, './.env') });

describe('61781150', () => {
  it('should pass', () => {
    expect(process.env.USER_ENDPOINT).toBe('http://localhost:3000');
    expect(process.env.USER_KEY).toBe('abc123');
  });
});

.env:

USER_ENDPOINT=http://localhost:3000
USER_KEY=abc123

您很可能需要获取以下路径.env文件通过path.resolve method.

单元测试结果:

 PASS  stackoverflow/61781150/index.test.js (8.236s)
  61781150
    ✓ should pass (2ms)

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

开玩笑测试不使用 dotenv 读取环境变量 的相关文章

  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • 如何在create-react-app中注入没有REACT_APP前缀的dotenv变量?

    我有一个项目要从旧版 React 应用程序迁移到标准版create react app一个 未弹出 在遗留项目中 它手动加载 env文件与dotenv and dotenv expand并通过webpack注入DefinePlugin cr
  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston
  • Node.js Express 4.0 中的 res.render 回调参数的用途是什么?

    目的是什么res render回调参数 在什么情况下 由于模板已被指定为第一个参数 因此人们会想要使用这样的回调参数 这是文档中的代码 send the rendered view to the client res render inde
  • 函数不会等到 Promise 得到解决

    我正在开发一个简单的不和谐机器人 我正在尝试打印有关某个玩家的一些一般数据 我最近了解了 async await 并尝试将其实现到我的代码中 然而 它似乎不起作用 因为当我第一次触发此代码时 它会打印 null 但在后续触发时 它将打印正确
  • 在 Nodejs 中,如何停止 FOR 循环直到 MongoDB 调用返回

    我正在研究下面的代码片段 我有一个名为 stuObjList 的 JSON 对象数组 我想循环遍历数组以查找具有特定标志集的特定 JSON 对象 然后进行数据库调用以检索更多数据 当然 FOR 循环不会等待数据库调用返回并到达 j leng
  • 将随机字节转换为整数范围 - 如何?

    我试图通过读取 crypto randomBytes 来获取一定范围内的随机整数 现在 我的问题是我不知道如何从该字节流中读取整数 我想生成一个范围只是 丢弃 不在范围内的整数的问题 有任何想法吗 您可以从以下位置获取一个 32 位整数cr
  • 简单 AJAX Get 请求“待处理”

    我正在尝试实现一个简单的 AJAX GET 请求 该请求告诉服务器删除数据库中的文档 虽然我从服务器得到文档已删除的确认 但 Chrome 检查器显示该请求处于 待处理 状态 最终导致服务器错误 我做错了什么 HTML div class
  • dyld:惰性符号绑定失败

    当我尝试运行时遇到一个奇怪的错误gatsby develop在新创建的 gatsby 项目中 这不应该与 gatsby js 静态站点生成器 有任何关系 因为我在不同的场合也遇到了相同的错误 当我跑步时gatsby develop在我的一个
  • 如何将对象数组传递给jade模板?

    我想将一组对象从 mongodb 传递到客户端 这是物体 var objeto img name name of the file image image jpg url title title of the image caption d
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • Jest - 模拟函数,从另一个文件导入

    测试的文件使用从另一个文件导入的函数 import myFunc from myFile 如何在该文件的测试中模拟该函数的返回值 我正在使用笑话 这对我有用 我不确定这是否是一个好的做法 import as myFile from myFi
  • npm install -g expo-cli 失败并显示“EPERM:不允许操作,取消链接 '...\adb.exe'

    我在运行时收到错误 npm install g expo cli 我尝试以管理员身份重新安装节点模块 但出现相同的错误 环境 Windows 10 节点版本 10 15 3 NPM版本 6 9 0 我预计安装会发生 但出现了这样的错误 np
  • MongoDB中如何通过引用字段进行查询?

    我有两个 Mongo 模式 User id ObjectId name String country ObjectId Reference to schema Country Country id ObjectId name String
  • 错误关系不存在

    我得到了 error relation causes does not exist 我的节点应用程序出现错误 这种关系确实存在 我不确定问题出在哪里 我创建了该表 CREATE TABLE causes cause id bigint NO
  • web3.eth.sendSignedTransaction() 总是返回“返回错误:nonce 太低”

    I used 电子邮件受保护 cdn cgi l email protection在 Node js 中与私有区块链交互 我是按照官方文档写的代码 电子邮件受保护 cdn cgi l email protection var Web3 re
  • Node js mongodb 删除错误“key $lte 不得以 '$' 开头”

    db collection session remove timestamp lte a function err docs console log err console log docs Version mongodb is 2 6 5
  • API 使用令牌向 odoo 进行身份验证

    我想使用令牌从 Express 应用程序向 Odoo 进行身份验证 我在用odoo xmlrpc https www npmjs com package odoo xmlrpc连接 Odoo 的节点模块 我的快递应用程序 Odoo 要求 A
  • Nodejs 中的子域

    如何处理nodejs的子域请求 例如以下代码回显test在控制台中的任何请求http localhost 9876 任何内容 http localhost 9876 5Banything 5D var http require http h
  • 如何获取nodejs程序中的nodejs版本?

    In a Node js 的调试器 https github com rocky trepanjs 有一个命令显示V8版本和调试器包版本 如何获取nodejs版本 我想我基本上可以运行命令node version or nodejs ver

随机推荐

  • CSS 多个多列 div

    我有一堆想要显示的项目 文本 图像 混合内容等 用户可以定义该项目出现在哪一行和哪一列 例如 在第 1 行中 可能有两个项目 列 都是图像 在第二行中 可能有三个项目 列 其中一个带有图像 另外两个为纯文本 哦 用户可以指定任何特定列 图像
  • 如何清除JavaScript中的敏感内存?

    我有一个登录表单 供用户输入他 她的密码 该表单绑定到 AngularJS 模型 假设在相应的控制器中 用户给出的密码可通过 scope password 实际的登录过程由以下函数调用处理 login scope email scope p
  • Metro 应用程序中的 FTP

    我正在尝试在 Metro 和 C 中创建 FTP 应用程序 但 System Net 中的 FTP 类已被删除 现在我不知道如何执行此操作 我研究过BackgroundUploader 但不明白如何恢复目录结构等 有没有人有这样做的经验 我
  • 无法在 Javascript 中进行递归调用

    当我尝试运行这个程序时 我在 Firefox 中收到一条错误消息 moveDate 在第 41 行未定义 参考行window setTimeout moveDate 100 有什么想法吗 我认为递归函数能够定义自己 然后调用自己 funct
  • 自定义位置非自定义控制 Google 地图 (v3 API)

    我希望能够调整地图类型控件的位置 我将其设置为右上角 但我需要将其缩小约 50 像素 我读到自定义控件可以填充 DIV 那么非自定义控件呢 我可以延长控制范围吗 下面是 API 为该控件生成的 HTML div class gmnoprin
  • Android 和布局

    我需要在视图中找到文本 文本 更多文本 应位于底部 center horizo ntal 文本 短文本 应位于右对齐位置 但距屏幕顶部约 10 文本 x x x x 应与屏幕中心对齐 第一四分之一的右 下对齐 文本 一些长文本 应该与屏幕第
  • 是否可以在 JAX-RPC java 客户端中访问原始 SOA/XML 消息?

    我正在尝试通过 JAX RPC java 客户端访问 XML 响应 我一直在研究 Axis 自定义处理程序 但看起来它们仅在服务端有用 下面的一些代码将返回 XML 响应有效负载 您可以直接从 AXIS Stub 类获取它 也可以从将其写入
  • 如何在Chrome扩展程序列表中设置宣传图片? [关闭]

    Closed 这个问题是无关 目前不接受答案 我可以看到很多 Chrome 扩展程序在列表中都有宣传图片 以 Gmail 为例 我找不到在开发人员仪表板中设置此图像的位置 如何 参观开发者仪表板并单击编辑链接 向下滚动 屏幕截图部分下方 然
  • sed 移动一行

    我只需要在 sed 中移动一行 我可以选择该行 sed i 7s 我需要将第 7 行向上移动 2 行 这样它将成为第 5 行 如果没有复杂的脚本 我在互联网上找不到任何东西可以做到这一点 我找不到将特定行移动特定次数的简单解决方案 seq
  • 从 ASP.NET C# 应用程序使用 PHP Web 服务(SOAP、WSDL) - 数组问题

    我有一个 Web 服务 用 PHP 定义 WSDL 和实现 这一项比较简单 重要的位定义如下
  • 硫化 Angular.dart?

    有硫化就像 Polymer dart 工具 由 Polymer Transformer 完成 一样 它可以很好地将所有导入的组件内联起来 并通过减少到服务器的往返次数来轻松为应用程序提供服务 有没有像 vulcanize 这样的工具可以用于
  • 如何在转发器内创建嵌套链接按钮?

    我需要在 asp net 页面中创建一个嵌套的链接按钮 看起来像树视图 但都是链接按钮 示例如下所示 ParentLinkButton1 ChildLinkButton1 ChildLinkButton2 ChildLinkButton3
  • 如何将 Visual Studio 2010 与 Visual C++ 2008 编译器一起使用?

    我想使用 Visual Studio 2010 和 9 0 编译器 我该怎么做 我需要这个以便我可以使用 DarkGDK 但是我不想切换 IDE 就在您的项目属性中 平台工具集 默认为 v100 只需将其更改为 v90 即可
  • RDLC 表达式导致#error

    我有两个小数字段 利润和收入 它们显示在 Tablix 控件中 每个控件都有自己的列 在第三列中 我想将利润除以收入 当这些字段中的任何一个为零时 结果是 error 我猜测这是由于除以零造成的 我想出了以下表达式来解决这个问题 iif C
  • R闪亮:如何在数据框中嵌入sliderInputs/selectInputs和radioButtons? (错误:无法将“shiny.tag”类强制到 data.frame)

    我需要在矩阵中嵌入不同类型的输入 它适用于 textInput 和 numericInput 但我找不到 selectInput sliderInput 和 radioButton 的方法 我可以在 HTML 中指定 textInput 和
  • C++中字符的指针

    根据书本 第一行 cout 应该打印我所在位置的地址字符变量 b被存储 这似乎是这种情况整型变量a也 但是第一个 cout 语句打印出一个奇怪的结果 dh 而第二条语句正确打印十六进制值 ox23fd68 为什么会发生这种情况 includ
  • 缺少必需的参数,包括无效的参数值,使用 LinkedIn API 多次参数

    我尝试使用 OAuth2 使用 LinkedIn API 进行身份验证 代码 if isset GET code AND isset GET state code GET code state GET state curl request
  • Beautiful Soup 并通过 ID 提取 div 及其内容

    soup find tagName id articlebody 为什么这不返回 div div 标签和中间的东西 它什么也不返回 我知道它确实存在 因为我正盯着它 soup prettify soup find div id articl
  • Java围绕参数值同步方法

    考虑以下方法 public void upsert int customerId int somethingElse some code which is prone to race conditions 我想保护此方法免受竞争条件的影响
  • 开玩笑测试不使用 dotenv 读取环境变量

    我正在对一个调用环境变量的函数运行测试 但未定义 我尝试过但不起作用的解决方案 1 add require dotenv config path env 在我的测试文件中 2 在 package json 中传递全局变量 jest glob