【发布时间】:2014-04-09 05:22:22
【问题描述】:
我正在尝试使用 Karma 和 requirejs 测试我的 Angular 脚本,但我不断收到此错误
Firefox 28.0.0 (Mac OS X 10.9) 错误:“/base/app/public/js/test/unit/controllersSpec.js 没有时间戳!”
警告[网络服务器]:404:/base/app/public/js/test/unit/controllersSpec.js
Firefox 28.0.0 (Mac OS X 10.9) 错误 错误:脚本错误:test/unit/controllersSpec http://requirejs.org/docs/errors.html#scripterror 在 /Users/Masanori/Desktop/FlippySurvey/node_modules/requirejs/require.js:166
我尝试以不同的方式更改 baseUrl,但我仍然不断收到错误消息。 有人可以帮我解决这个问题吗?我会感谢你的帮助!
我的目录结构是这样的
app/
public/
vendors/
....
js/
controllers.js
controllers/
mainctrl.js
test
unit
controllersSpec.js
karma.conf.js
test-main.js
这是我的 test-main.js 和 karma.conf.js
test-main.js'
var allTestFiles = [];
var TEST_REGEXP = /(spec|test)\.js$/i;
var pathToModule = function(path) {
return path.replace(/^\/base\//, '').replace(/\.js$/, '');
};
Object.keys(window.__karma__.files).forEach(function(file) {
if (TEST_REGEXP.test(file)) {
// Normalize paths to RequireJS module names.
allTestFiles.push(pathToModule(file));
}
});
require.config({
paths:{
'angular' : '/base/app/public/vendors/angular/angular',
'angularMocks': '/base/app/public/vendors/angular-mock/angular-mock',
'domReady' : '/base/app/public/vendors/requirejs-domready/domready',
'angularRoute': '/base/app/public/vendors/angular-route/angular-route'
},
baseUrl: '/base/app/public/js',
shim: {
'angular' :{'exports':'angular'},
'angularRoute' :['angular'],
'angularMocks':{
deps: ['angular'],
'exports':'angular.mock'
}
},
deps: allTestFiles,
callback: window.__karma__.start
});
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine', 'requirejs'],
files: [
{pattern: 'unit/*.js', included: false},
{pattern: 'unit/**/*.js', included: false},
{pattern: '../app/public/js/**/*.js', included: false},
{pattern: '../app/public/js/*.js', included: false},
{pattern: '../app/public/vendors/**/*.js', included: false},
'test-main.js'
],
exclude: [
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Firefox'],
singleRun: false
});
};
【问题讨论】:
标签: javascript angularjs unit-testing requirejs karma-runner