将 AMD 模块导入 Mocha 测试
Importing AMD module in to Mocha test
我正在使用 Mocha 测试导出为 AMD 模块的代码。 运行 摩卡测试给我以下错误。
ReferenceError: define is not defined
at Object.<anonymous> (/home/malintha/projects/...../xxx.js:1:63)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
被测试为流的来源
define(['lodash', 'log', './yyy'], function(_, log, YYY) {
var xxxy = function() {
};
..............
});
还有 mocha 测试
var expect = require("chai").expect;
var sourceGenVisitor = require("../../xxx")
describe("", function() {
describe("", function() {
it("Checks generated source", function() {
...................
});
});
});
我该如何解决这个问题?
您可以使用 amd-loader
。我在我的一个项目中使用它 年 ,该项目的结构是 AMD 模块的集合。安装:
`npm install amd-loader`
然后需要在任何 AMD 模块之前加载它。总的来说:
require("amd-loader");
对于 Mocha,您可以使用参数 --require amd-loader
。如果您不想记住一遍又一遍地输入,可以将其放入 test/mocha.opts
文件中。
如果你 运行 使用 typescript 进行 mocha 测试。也许你这样做:
安装 amd-loader:
npm install amd-loader --save
运行摩卡测试:
mocha src/**/*test.ts --require ts-node/register -r amd-loader
我正在使用 Mocha 测试导出为 AMD 模块的代码。 运行 摩卡测试给我以下错误。
ReferenceError: define is not defined
at Object.<anonymous> (/home/malintha/projects/...../xxx.js:1:63)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
被测试为流的来源
define(['lodash', 'log', './yyy'], function(_, log, YYY) {
var xxxy = function() {
};
..............
});
还有 mocha 测试
var expect = require("chai").expect;
var sourceGenVisitor = require("../../xxx")
describe("", function() {
describe("", function() {
it("Checks generated source", function() {
...................
});
});
});
我该如何解决这个问题?
您可以使用 amd-loader
。我在我的一个项目中使用它 年 ,该项目的结构是 AMD 模块的集合。安装:
`npm install amd-loader`
然后需要在任何 AMD 模块之前加载它。总的来说:
require("amd-loader");
对于 Mocha,您可以使用参数 --require amd-loader
。如果您不想记住一遍又一遍地输入,可以将其放入 test/mocha.opts
文件中。
如果你 运行 使用 typescript 进行 mocha 测试。也许你这样做:
安装 amd-loader:
npm install amd-loader --save
运行摩卡测试:
mocha src/**/*test.ts --require ts-node/register -r amd-loader