未定义带有xmljs GLOBAL的玩笑测试

时间:2020-05-07 06:34:34

标签: node.js typescript jestjs ts-jest

当前我正在使用

编写应用
  • NodeJS v13.12.0
  • 笑话25.4.0
  • xmljs 0.3.2
  • 打字稿3.8.3
  • ts-jest 25.4.0

此应用程序应模仿CalDAV服务器。因此,我依赖于模块xmljs,这是(在我研究之后)唯一一个为我提供直接{ "java.configuration.updateBuildConfiguration": "automatic" } 方法来在XML中查找属性的模块。

在节点Container中,App运行正常,没有任何错误。但是当我用Jest开始测试时,测试失败并显示错误

path

我现在知道,此错误源自尝试设置ReferenceError: GLOBAL is not defined at node_modules/xmljs/core.js:46:2 at Object.<anonymous> (node_modules/xmljs/core.js:176:3) at node_modules/xmljs/XmlParser.js:3:11 at Object.<anonymous> (node_modules/xmljs/XmlParser.js:204:3) 变量的xmljs模块,该变量在NodeJS中解析为GLOBAL。但这不是开玩笑。

我的代码如下所示:

global

任何人都可以

  1. 向我展示一个模块,而不需要对我的代码进行大量修改

    • 哪些支持纯js实现而不使用node-gyp(因为它可以在Windows服务器上使用)
  2. 告诉我如何通过变通办法来欺骗在xmljs中设置的GLOBAL变量

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以在测试设置中设置GLOBAL的值。看来GLOBAL变量是节点中global的不赞成使用的形式。

jest.config.js文件中,您可以通过setupFiles选项添加设置文件:

module.exports = {
    [...] // Other configurations
    setupFiles: ['<rootDir>/define-deprecated-global.js']
};

在文件define-deprecated-global中,您可以将GLOBAL变量定义为:

global.GLOBAL = global;