node.js - “未定义定义”-Nodejs 中的 jasmine-node requirejs
问题描述
我正在尝试对使用 requirejs 的文件运行 jasmine 测试。我有一个 require.config.js 文件,它提供了 requirejs 的所有配置,我正在传递给这个命令来运行 jasmine 测试。
jasmine-node --runWithRequireJs --captureExceptions --requireJsSetup spec/require.config.js spec/modules/test.spec.js
我的 require.config.js 看起来像这样 -
var require = {
baseUrl: "../app",
urlArgs: 'cb=' + Math.random(),
paths: {
jquery: '../assets/js/libs/jquery-1.8.2',
underscore: '../assets/js/libs/underscore-min',
backbone: '../assets/js/libs/backbone-min',
jasmine: '../spec/lib/jasmine',
jasminehtml: '../spec/lib/jasmine-html',
boot: '../spec/lib/boot',
spec: '../spec/',
handlebars : '../assets/js/libs/handlebars-1.0.0.beta.6',
// plugins
jqueryui : '../assets/js/plugins/jquery-ui',
jqgrid : '../assets/js/plugins/jqGrid',
jqgridlocale : '../assets/js/plugins/i18n/grid.locale-en',
jqform : '../assets/js/plugins/jquery.form',
jqfiledownload : '../assets/js/plugins/jquery.fileDownload',
migrate: '../assets/js/plugins/jquery-migrate',
text : '../assets/js/plugins/text'
},
shim: {
'underscore': {
exports: "_"
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'jasmine': {
exports: 'jasmine'
},
'jasminehtml': {
deps: ['jasmine'],
exports: 'jasmine'
},
'boot': {
deps: ['jasmine', 'jasminehtml'],
exports: 'window.jasmineRequire'
},
'handlebars' : {
exports : 'Handlebars'
},
'text' : {
exports : 'text'
},
'jqueryui' : [ 'jquery' ],
'jqgrid' : [ 'jquery' ],
'jqgridlocale' : [ 'jquery' ],
'jqform':['jquery'],
'jqfiledownload':['jquery'],
'migrate':['jquery']
}};
我的 test.spec.js 文件看起来像这样 -
define(['modules/models/RouteModel','modules/models/RestWebService'], function(RouteModel,RestWebService){
describe("RouteModel :", function(){
it("should create an test instance", function(){
expect(RouteModel).not.toBe(null);
});
});
运行命令后,我进入控制台
ReferenceError: define is not defined at C:\Users\TestProject\spec\modules\test.spec.js:1:1
在这种情况下可能会出现什么问题?这是路径配置问题吗?
PS - 我想要茉莉花的完整控制台输出,而不是茉莉花中的浏览器输出。
解决方案
错误非常简单,您需要在调用它的函数之前加载 requirejs。您可以从以下链接中找到更清晰的想法: https ://stackoverflow.com/a/29317859/1607130
推荐阅读
- android - cipher.init 上的 Android 密钥库操作失败
- python - 烧瓶 send_file() 返回正确的 .xlsx 数据但文件名不正确
- reactjs - 当您必须在 Render() 中设置状态时,如何避免无限的重新渲染循环?
- javascript - 单击时向右和向左滑动 div
- java - 如何在 Java 中正确地动态初始化多维数组?
- javascript - 如何在脚本标签中启动 var?
- python - 在终端中使用引号的 SyntaxError
- swift - Continuous Touch in Swift
- nginx - 两个 url 模式的 Nginx 位置块
- angular - ngModel 不更新下拉菜单中的变量