1

我试图弄清楚如何使用 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。它应该重现我所做的所有步骤。

提前致谢!

4

0 回答 0