我试图弄清楚如何使用 jsdom 和 nodeunit 作为测试框架来测试主干。
我遇到了错误:“错误:调用节点的 require("text") 失败并出现错误:错误:找不到模块 'text'”
这意味着,上下文无法加载 requirejs-text 插件。
我已经创建了 DOM 上下文:
var assert = require('assert');
var fs = require('fs');
var index_html = fs.readFileSync(__dirname + '/../static/index.html', 'utf-8');
var requirejs = require('requirejs');
var jsdom = require('jsdom');
// require('amdefine/intercept');
var jQuery = require('jquery');
在测试设置上,尝试打开主干视图:
exports.setUp = function(callback){
var document = jsdom.jsdom(index_html);
var window = document.parentWindow;
jsdom.getVirtualConsole(window).sendTo(console);
requirejs.config({
baseUrl: __dirname + '/',
packages: [{
name: 'text',
location: '../node_modules/requirejs-text/text.js ',
main: 'text.js'
},
],
});
requirejs([__dirname + '/../lib/views/stackoverflow.js'], function(bb){
callback();
});
};
在调用回调之前引发异常。我正在使用的视图只是使用 requirejs-text 加载模板的常规视图。为了更好地解释这个问题,我还创建了一个GitHub 存储库。只需克隆它,输入项目目录并输入make。它应该重现我所做的所有步骤。
提前致谢!