gpt4 book ai didi

javascript - 如何让 Grunt-Contrib-Jasmine 执行规范并加载依赖项?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:24:38 24 4
gpt4 key购买 nike

项目是:Backbone + Require + Underscore + Grunt + Grunt-Contrib-Jasmine + Grunt-Lib-PhantomJS

我一直在与两个严重的问题作斗争。我知道 phantomjs 运行正常等,因为如果我包含我的应用程序 src 文件,我会遇到大量运行时错误。我什至正确地订购了 deps,这样 Backbone 就不会因 _ 未定义等而呕吐。

1) 当我包含我的应用程序 src 时,我收到错误 can't find variable: define 我所有的源文件。我尝试将需求放入 src[] 而不是 vendor[] 甚至尝试加载一个包含 deps 的 RequireJSConfig.js。

2) 关键是:我很确定我正确地指向了我的规范文件。如果我只指向一个测试,它仍然显示No Specs Executed。是否存在配置错误? 在我的例子中,我只是指向我的 UserModelUnitTest.js,这非常简单。它不执行。我要疯了!

规范 (UserModelUnitTest.js):

describe('User Model Unit Tests', function() {
var USER_MODEL,
USER_CLASS,
JSON_OBJ;
beforeEach(function() {
USER_CLASS = testr('models/user/User', {});
});

afterEach(function() {
USER_MODEL = null;
USER_CLASS = null;
JSON_OBJ = null;
});
describe('Given a json object', function() {
it('should create a valid User', function() {
JSON_OBJ = {"databaseId": 123456,"loginName": "god","firstName": "Jesus","lastName": "Christ","phone": "666-666-6666","email": "satan@hell.org","isoCountryCode": "US","languageCode": "en","roles" : ["SALES_REP"]};
USER_MODEL = new USER_CLASS(JSON_OBJ, { parse: true });
expect(USER_MODEL).not.toBe(null);
});
// etc...
});
})

这是我的目录结构

/project
- src
- main
+ test
+ js
+unit
UserModelUnitTest.js

这是我的 Gruntfile/Jasmine 配置

 jasmine: {
test:{
vendor:[
'src/main/resources/js/lib-clean/jquery-2.1.0.js',
'src/main/resources/js/lib-clean/require-2.1.1.full.js',
'src/main/resources/js/lib-clean/underscore-1.5.2.min.js',
'src/main/resources/js/lib-clean/backbone-1.1.2.min.js'
],
src : [
// these all error like crazy. Can't find variable 'define' etc.
// 'src/main/**/*.js',
// 'src/main/**/**/*.js',
//'src/test/RequireJSConfig.js'
],
helpers : [
'src/test/js/helpers/dependencyHelper.js',
'src/test/js/helpers/errorHelper.js',
'src/test/js/helpers/requesetHelper.js',
'src/test/lib/testr.js',

// jasmine.js + jasmine-html.js etc
'src/test/lib/*.js',

// stubs
'src/test/js/stubs/*.js'
],
specs : [
'src/test/js/unit/UserModelUnitTest.js'
],
//specs : 'src/test/js/unit-headless.html',
timeout : 10000,
phantomjs : {
'ignore-ssl-errors' : true
}
}
},

But I do have specs!!!!

最佳答案

我刚刚遇到了同样的问题。您需要在 options 选项中定义 vendorspecshelpers

jasmine: {
src: 'path/to/src',
options: {
vendor: 'path/to/vendor',
specs: 'path/to/specs',
helpers: 'path/to/specs'
// etc.
}
}

关于javascript - 如何让 Grunt-Contrib-Jasmine 执行规范并加载依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23021430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com