require.main.require 有效,但不在 Mocha 测试中

2024-02-10

我编写了一个全局函数来要求我的应用程序/框架的某些文件:

global.coRequireModel = function(name) {
    // CRASH happens here
    return require.main.require('./api/_co' + name + '/_co' + name + '.model');
}

该模块位于 /components/coGlobalFunctions 中。

我的主应用程序 app.js 中需要它,如下所示:

require('./components/coGlobalFunctions');

然后在其他模块中使用我使用的框架中的“东西”:

var baseScheme = coRequireModel('Base');

这有效,但在 Mocha 测试中不起作用,它在 require.main.require 调用之前给我一个“错误:找不到模块”。

测试似乎来自另一个源文件夹。但我认为 require.main.require 会消除必须相对链接到模块的方面。

EDIT:

位于 api/user 中的示例测试文件:

var should = require('should');
var app = require('../../app');
var User = require('./user.model');
...

require.main指向直接从节点运行的模块。所以,如果你跑node app.js, then require.main将指向app.js。另一方面,如果您使用mocha, then require.main将指向摩卡。这可能就是您的测试失败的原因。

See 节点文档 https://nodejs.org/api/modules.html#modules_accessing_the_main_module更多细节。

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

require.main.require 有效,但不在 Mocha 测试中 的相关文章

  • 如何根据 node.js 中用户的输入创建 mongodb 查询?

    目前在我的应用程序中我存储了不同的论坛帖子 用户可以添加新消息并创建新帖子 其他用户在显示内容时可以对其进行过滤 这样他们就不会看到他们之前阻止的特定用户上传的内容 每个用户都表示为以下组合device id and display nam
  • 来自heroku的https请求

    我想通过 https 协议从 vk com api 获取数据 像这样 var https require https https get https api vk com method users get access token glob
  • 跨水平服务器计算 socket.io 用户数

    我有多个使用 redisstore 水平扩展的 socket io 服务器 我已经有效地设置了房间 并且能够成功地跨服务器广播到房间等 现在我正在尝试构建一个状态页面 但我无法弄清楚如何简单地计算跨服务器连接的用户数量所有服务器 io so
  • NodeJS MySQL - 如何知道连接是否释放

    我正在开发 NodeJS MySQL Web API 我在用mysql https www npmjs com package mysqlnpm 模块 我想知道连接是否已释放 是否有任何函数或变量 喜欢 if connection isRe
  • 使用 React 和 Ant Design 的浮动标签

    对于我的 React 应用程序 我正在尝试构建一个表单浮动标签使用具有不同输入类型的 Antd 模板 仅使用样式使标签浮动 到目前为止 我已经能够将标签放在输入后面 但是当我将转换 转换应用于我的CSS代码时 它似乎根本不起作用 这是我的表
  • 使用 mocha 和 chai 测试 fetch

    我有以下示例测试 import assert from chai function starWarsMovies fetch http swapi co api films then res gt return res json then
  • Mongoose update 更新数组内的嵌套对象

    我正在尝试查询和更新名册数组 roster schedule monday start 中的元素 然后更新本示例中的值 monday start 这两个键需要是动态的 我认为方法会是这样的 通过 id查找文档 通过 id 在数组中查找匹配对
  • Node.js - 我可以在 PhoneGap / Cordova 应用程序上安装 NPM 包吗?

    感谢 Cordova 我正在构建一个移动应用程序 并且由于 Cordova 基于 Node js 我认为我可以在应用程序中使用 NPM 包 例如 我希望我的移动应用程序能够与远程 MySQL 数据库通信 我想我可以使用 mysql NPM
  • 如何在控制器中模拟 Automapper (IMapper)

    我正在尝试为现有的 MVC Web 应用程序编写单元测试 我在自动映射器中面临一些问题 IMapper 每当使用地图函数时它都会返回null value 我的控制器代码 public class UserAdministrationCont
  • Spring Boot 单元测试 - 测试失败,抱怨没有定义“entityManagerFactory”bean

    我正在尝试为 Spring Boot 应用程序中的控制器编写单元测试 该应用程序运行顺利 我的问题是运行它tests 这是测试代码 RunWith SpringRunner class WebMvcTest MyController cla
  • socket.io 切换命名空间

    我目前正在与 socket io 进行简单的聊天 基础知识已经可以工作 但现在我正在尝试实现 2 个不同的命名空间 我希望客户端能够通过单击按钮从一个命名空间 支持聊天 切换到另一个命名空间 朋友聊天 服务器端 default namesp
  • 如何测试两个 Joda-Time DateTime 对象几乎相等?

    在单元测试中 我经常使用返回DateTime于或关于now 有没有办法说actual日期时间在几秒之内actual约会时间 这听起来是个坏主意 单元测试不应该以任何方式依赖于当前的实际时间 这就是为什么注入一些接口是一个很好的做法 称为Cl
  • 为什么 NodeJS 不支持 String.prototype.replaceAll?

    这个字符串方法存在于 browserland 中 但不存在于 Node 中 为什么不 它既不是全新的 也不是异国情调的 replaceAll is part of ECMA 262 src https tc39 es ecma262 sec
  • 无法将环境变量传递给 docker

    我正在尝试使用环境变量运行 docker 映像 但它对我来说不起作用 无论是使用 env list 文件还是通过命令行 docker run p 49160 8080 d appname e FOO foo 来自守护程序的错误响应 OCI
  • 如何获取node.js中调用函数的文件路径?

    以下是来自三个文件的一些示例代码 foo js var myFunc require myFunc function foo myFunc message bar js var myFunc require myFunc function
  • +process 中的加号是 Node.js 域文档中的拼写错误吗?

    在本文档中 http nodejs org api domain html http nodejs org api domain html 这一行出现 var PORT process env PORT 1337 加号是拼写错误吗 如果不是
  • Android Path addArc 在canvas中两点之间

    我正在尝试在 android 中绘制弧线 在IOS中 用这个方法确实很简单 path addArcWithCenter radius startAngle endAngle clockwise 在android中 我有3个点 我的圆的中心
  • ruby require 问题(与 $LOAD_PATH 有关)

    我正在尝试使用我刚刚安装的 gem 通过sudo gem install excelsior 像这样 需要 红宝石 要求 精益求精 这在 irb 中工作得很好 但是当我将完全相同的代码粘贴到 rb 文件中并尝试使用 ruby 运行它时 我得
  • Espresso - withEffectiveVisibility 与 isDisplayed

    有什么区别isDisplayed and withEffectiveVisibility onView withText Much Dagger check matches withEffectiveVisibility ViewMatch
  • 如何在mockito中模拟Spring依赖

    我正在尝试嘲笑 Spring Beans 我能够模拟对象 B 和 C 但无法模拟 B 类内的对象 插入类 A 中的模拟包含 B 但 X 和 Y 为空 即使我嘲笑了它们 Mockito 有没有办法模拟 Spring bean 中成员的对象 N

随机推荐