我正在尝试使用Karma和requirejs来测试我的角脚本,但是我一直收到这个错误。
Firefox28.0.0(MacOSX10.9)错误:“/base/app/public/js/test/unit/controllersSpec.js!‘没有时间戳警告web服务器: 404: /base/app/public/js/test/unit/controllersSpec.js Firefox28.0.0(MacOSX10.9)错误:用于: /Users/Masanori/Desktop/FlippySurvey/node_modules/requirejs/require.js:166 /unit/controllersSpec http://requirejs.org/docs/errors.html#scripterror的脚本错误
我试着以不同的方式更改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
});
};发布于 2014-04-09 16:21:25
好吧。
我只需要去掉一些代码,当你用需求做业力时,业力会自动插入这些代码。
在test-main.js中
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));
}
});删除pathToModule
Object.keys(window.__karma__.files).forEach(function(file) {
if (TEST_REGEXP.test(file)) {
allTestFiles.push(file);
}
});现在业力读取所有的测试文件!
https://stackoverflow.com/questions/22953444
复制相似问题