在 Mocha 中处理未随 npm 安装的依赖项?

2024-04-14

我有一个正在运行的 Node 应用程序,我正在尝试添加 Mocha 测试,但遇到了一些奇怪的导入错误。

这是我的文件结构:

package.json
index.js
src/
  chart.js
test/
  test_chart.js

这就是我的chart.js文件看起来像:

global.jQuery = require('jquery');
global.$ = global.jQuery;
require('typeahead');
require('bloodhound');
var bootstrap = require('bootstrap');
var Handlebars = require('handlebars');
var Highcharts = require('highcharts-browserify');
var parse = require('csv-parse');
var moment = require('moment');
var analyseChart = {
  doSomething: function() { ... }
};
module.exports = analyseChart;

目前我从以下位置导入所有内容/src成一个单一的index.js文件,然后将其与browserify,效果很好,应用程序中没有错误。

我在 package.json 中有一个部分定义了无法通过 npm 获得的依赖项,如下所示:

 "browser": {
   "chosen": "./vendor/chosen.jquery.min.js",
   "typeahead": "./vendor/typeahead.bundle.js",
   "bloodhound": "./vendor/bloodhound.js"
 }

现在我想开始为以下函数编写 Mocha 测试/src.

这是我的第一个存根test_chart.js:

var chart = require('../src/chart');
chart.doSomething();

但当我跑步时mocha,我收到以下错误:

 /Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2
var proto = Element.prototype;
            ^
ReferenceError: Element is not defined
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/index.js:4:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/typeahead.js:3:11)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/src/chart.js:3:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/test/test_chart.js:3:13)

如何修复 Mocha 的此导入错误?

我想也许它不喜欢require('typeahead')因为它看不到browser我设置的依赖路径package.json.

有没有办法让 Mocha 和 browserify 都可以使用这些文件?

或者我应该完全使用另一个测试包?


None

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

在 Mocha 中处理未随 npm 安装的依赖项? 的相关文章

随机推荐

  • 将 json 请求 POST 到 Solr,请求中带有cursorMark

    是否可以包括cursorMarkPOST 请求正文中的值而不是将其作为查询字符串参数发送 以下查询 query val abc limit 10 cursorMark sort id asc 返回一条错误消息 JSON 请求中未知的顶级键
  • Oracle设置默认NLS_LANG

    我在 RHEL6 上运行 Oracle 数据库 11g 如果没有客户端NLS LANG 则设置某些utf8字符的长度为2 设置NLS LANG AMERICAN AMERICA UTF8后 长度仅为1 如何更改整个数据库的默认 NLG LA
  • 静态变量的线程安全初始化

    我一直在使用这种模式来初始化类中的静态数据 对我来说 它看起来是线程安全的 但我知道线程问题有多么微妙 这是代码 public class MyClass bad code do not use static string myResour
  • Jasmine:测试 setTimeout 函数抛出错误

    我想测试一个方法的错误处理 该方法使用 setTimeout 安排工作 该错误将在预定部分抛出 即 function sutWithSetTimeout setTimeout function throw new Error pang 1
  • `scipy.ndimage.zoom` 与 `order=0` 的 `skimage.transform.rescale`

    我正在创建一个彩色灰度图像来显示图像块的分类 我需要使用零阶对低分辨率分类图像进行上采样以匹配原始图像大小 When I use skimage transform rescale I 16 order 0 I get the desire
  • Vue.js $children 按组件名称

    我正在尝试按名字访问特定的孩子 目前 由于孩子所在的位置 我这样称呼孩子 this root children 0 没关系 只要那个孩子总是 0 但如果有一种方法可以做类似的事情那就太好了 this root children detail
  • Expo 应用程序:任何导航器均未处理“TOGGLE_DRAWER”操作

    我试图从 MealsNavigator 导航中显示一个抽屉 到目前为止 我导入了 ff 必需品 import React from react import NavigationContainer from react navigation
  • 将此字符串转换为时间戳 PHP [重复]

    这个问题在这里已经有答案了 我有这个字符串 13 10 15 00 我想将其转换为时间戳 但是当我这样做时 timestamp strtotime 13 10 15 00 它返回一个空值 在你的代码中strtotime 正在尝试转换13 1
  • 从单线程进行 COM 调用会挂起线程

    我有一个应用程序 可以通过自动化插件执行一些 Excel 自动化操作 该加载项是多线程的 所有线程都设法调用 Excel COM 对象 由于 Excel 在进行多次调用时有时会返回 忙 异常 因此我将所有调用包装在 重试 函数中 但我觉得这
  • 如何从 page.open 发出的请求中查看 HTTP 状态代码?

    我有一个 phantomJS 脚本 其中包含以下内容 page open url function status if status fail handle failure 状态检查有时会起作用 但即使请求返回 500 状态仍然是 成功 如
  • 如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]

    这个问题在这里已经有答案了 为了使这一点易于理解 我制作了一个示例代码 因为我的实际代码要大得多 基本上我想要完成的是运行我的 PHP 脚本 使用 ajax 编辑 XML 文件 这是因为我需要在我的实际项目中的 javascript 中执行
  • 使用 12 GB 内存运行 Dart

    I am using 16 GB RAM on my Pc This started happening while working without any reason as far as I no This always happens
  • docker compose MySQL 容器 [2002] 连接被拒绝

    我正在尝试为 Nginx PHP Laravel MySQL 构建 docker compose 容器 但我不断收到连接被拒绝错误 docker compose yml version 3 services nginx image ngin
  • Laravel 带有约束的急切加载

    所以我的模型有两个简单的关系 然后急切加载就像这样完美地工作 Entry with author lastModifiedBy gt 但是假设我想添加一个带有约束的新关系 例如 public function foo return this
  • iOS SDK Hue 飞利浦与 Swift

    我尝试在 Objective C 中为 Hue 导入 iOS SDK 我按照这里的说明进行操作 https github com PhilipsHue PhilipsHueSDK iOS OSX https github com Phili
  • 为什么 Camera.setParameters(Camera.Parameters) 不适用于索尼爱立信 X10 和 Droid?

    在索尼爱立信 X10 或 Droid 上使用相机 API 时 有人遇到过奇怪的行为吗 例如 以下代码不适用于这些设备 结果 我在市场上收到了很多负面反馈 导致许多订单被取消 mParameters set rotation orientat
  • 我可以向内置 Python 类型添加自定义方法/属性吗?

    例如 假设我想添加一个helloWorld Python 的 dict 类型的方法 我可以这样做吗 JavaScript 有一个以这种方式运行的原型对象 也许这是糟糕的设计 我应该对 dict 对象进行子类化 但它只适用于子类 我希望它适用
  • 编写每个三角形/面具有纯色的 GLSL 片段着色器的方法

    我有顶点和三角形数据 其中包含每个数据的颜色triangle 面 不是每个顶点 即单个顶点由多个面共享 每个面可能具有不同的颜色 我应该如何在 GLSL 中解决这个问题以获得每个的纯色分配face正在渲染 通过平均顶点相邻多边形的颜色来计算
  • 设置任意深度的嵌套列表样式

    我想知道是否可以仅使用 CSS 来设置嵌套无序列表的样式 而不使用任何脚本 问题是 CSS 需要适用于列表树的任何深度 例如 我有一个列表 ul li Item 1 li li Item 2 li li Item 3 li li class
  • 在 Mocha 中处理未随 npm 安装的依赖项?

    我有一个正在运行的 Node 应用程序 我正在尝试添加 Mocha 测试 但遇到了一些奇怪的导入错误 这是我的文件结构 package json index js src chart js test test chart js 这就是我的c