无法在业力测试中加载非常简单的模块
could not load a very simple module in a karma test
我无法将一个非常简单的 angular 模块加载到业力测试中。
我的模块看起来,(karmatest_test0.js)
模块没有controllers/services。只为最简单。
'use strict';
var Whosebug_test = angular.module("Whosebug_test_app", []);
我的测试看起来,(karmatest\test0.js)
我在这里唯一做的就是加载这个模块
'use strict';
describe("Whosebug_test", function(){
it("init the service", function(){
var $injector = angular.injector(['Whosebug_test_app']);
expect(true).toBe(true);
});
});
我的配置文件看起来,(my.conf.js)
一切都是最基本的。我确实包含了来自 Google CDN 的 angular.js 和 angular-mock.js。
// Karma configuration
// Generated on Wed Oct 28 2015 18:37:16 GMT-0700 (Pacific Daylight Time)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js',
'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-mocks.js',
'karmatest_test.js',
'karmatest/*.js'
],
// list of files to exclude
exclude: [
],
reporters: ['mocha', 'html'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: true,
concurrency: Infinity
})
}
一切都是最简单的。错误是,
Error: [$injector:modulerr]
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35
at r (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:7)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35)
at ab (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:38)
at http://localhost:9876/base/karmatest/test0.js?7c002471b6c0067e24cfb8de0e5048f9581f112e:19
看起来错误源于我的测试不会加载模块 "Whosebug_test"。怎么会?
如果这应该是您模块的创建,您应该将两个参数传递给angular.module
;依赖项的名称和数组。
var Whosebug_test = angular.module("Whosebug_test_app", []);
否则,它充当getter。参见 https://docs.angularjs.org/api/ng/function/angular.module#usage
此外,您的文件 似乎 被命名为 karmatest_test0.js
但您的 Karma conf.js
需要 karmatest_test.js
.
我无法将一个非常简单的 angular 模块加载到业力测试中。
我的模块看起来,(karmatest_test0.js)
模块没有controllers/services。只为最简单。
'use strict';
var Whosebug_test = angular.module("Whosebug_test_app", []);
我的测试看起来,(karmatest\test0.js)
我在这里唯一做的就是加载这个模块
'use strict';
describe("Whosebug_test", function(){
it("init the service", function(){
var $injector = angular.injector(['Whosebug_test_app']);
expect(true).toBe(true);
});
});
我的配置文件看起来,(my.conf.js)
一切都是最基本的。我确实包含了来自 Google CDN 的 angular.js 和 angular-mock.js。
// Karma configuration
// Generated on Wed Oct 28 2015 18:37:16 GMT-0700 (Pacific Daylight Time)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js',
'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-mocks.js',
'karmatest_test.js',
'karmatest/*.js'
],
// list of files to exclude
exclude: [
],
reporters: ['mocha', 'html'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: true,
concurrency: Infinity
})
}
一切都是最简单的。错误是,
Error: [$injector:modulerr]
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35
at r (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:7)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35)
at ab (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:38)
at http://localhost:9876/base/karmatest/test0.js?7c002471b6c0067e24cfb8de0e5048f9581f112e:19
看起来错误源于我的测试不会加载模块 "Whosebug_test"。怎么会?
如果这应该是您模块的创建,您应该将两个参数传递给angular.module
;依赖项的名称和数组。
var Whosebug_test = angular.module("Whosebug_test_app", []);
否则,它充当getter。参见 https://docs.angularjs.org/api/ng/function/angular.module#usage
此外,您的文件 似乎 被命名为 karmatest_test0.js
但您的 Karma conf.js
需要 karmatest_test.js
.