javascript – 转换为requirejs后,Karma不会运行测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 转换为requirejs后,Karma不会运行测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7682字,纯文字阅读大概需要11分钟。
内容图文
要为当前测试运行的问题添加前缀,但它似乎挂起,它会启动浏览器,但不会自行退出浏览器,并且似乎没有在测试中运行代码.我认为它没有运行,因为浏览器没有加载最终的测试文件,但我不确定原因.这是我的karma.conf.js
// Generated on Mon Nov 18 2013 01:47:10 GMT-0600 (CST)
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
// frameworks to use
frameworks: ['jasmine', 'requirejs'],
// list of files / patterns to load in the browser
files: [
{pattern: 'app/scripts/**/*.js', included: false},
{pattern: 'app/scripts/*.js', included: false},
{pattern: 'test/spec/**/*.js', included: false},
'test/test-main.js',
],
// list of files to exclude
exclude: [],
// test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: ['progress'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera (has to be installed with `npm install karma-opera-launcher`)
// - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
// - PhantomJS
// - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
browsers: ['Chrome'],
// If browser does not capture in given timeout [ms], kill it
captureTimeout: 60000,
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false
});
};
测试/测试main.js
'use strict';
var tests = [];
for (var file in window.__karma__.files) {
if ( window.__karma__.files.hasOwnProperty(file) ) {
if (/spec\.js$/i.test(file)) {
tests.push(file);
}
}
}
require.config({
baseUrl: '/base/src',
paths: {
'jQuery' :'app/bower_components/jquery/jquery',
'angular' :'app/bower_components/angular/angular',
'angular-sanitize':'app/bower_components/angular-sanitize/angular-sanitize',
'angular-route' :'app/bower_components/angular-route/angular-route',
'angular-mocks' :'app/bower_components/angular-mocks/angular-mocks'
},
shim: {
'jQuery' : { 'exports':'jQuery'},
'angular' : { 'exports':'angular', 'deps':['jQuery'] },
'angular-sanitize': ['angular'],
'angular-route' : ['angular']
},
deps: tests,
},[
'domReady',
'controllers/main',
], function(domReady) {
domReady(function() {
console.log('testing');
window.__karma__.start;
})
});
测试/规格/控制器/ main.js
define(['angular','angular-mocks','controllers/insert'], function( angular, mocks, app ) {
'use strict';
describe('Controller: Insert', function () {
// load the controller's module
beforeEach(module('pasteyApp'));
var Insert,
scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
Insert = $controller('Insert', {
$scope: scope
});
}));
it('should attach a list of awesomeThings to the scope', function () {
expect(scope.code).toBeDefined;
});
});
});
咕噜声测试输出
DEBUG [plugin]: Loading inlined plugin (defining ).
INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
DEBUG [launcher]: Creating temp dir at /tmp/karma-26802229
DEBUG [launcher]: chromium --user-data-dir=/tmp/karma-26802229 --no-default-browser-check --no-first-run --disable-default-apps --start-maximized http://localhost:9876/?id=26802229
DEBUG [watcher]: Resolved files:
/home/xenoterracide/dev/Pastey/node_modules/karma-requirejs/lib/require.js
/home/xenoterracide/dev/Pastey/node_modules/karma-requirejs/lib/adapter.js
/home/xenoterracide/dev/Pastey/node_modules/karma-jasmine/lib/jasmine.js
/home/xenoterracide/dev/Pastey/node_modules/karma-jasmine/lib/adapter.js
/home/xenoterracide/dev/Pastey/app/scripts/app.js
/home/xenoterracide/dev/Pastey/app/scripts/controllers.js
/home/xenoterracide/dev/Pastey/app/scripts/controllers/insert.js
/home/xenoterracide/dev/Pastey/app/scripts/controllers/render.js
/home/xenoterracide/dev/Pastey/app/scripts/main.js
/home/xenoterracide/dev/Pastey/app/scripts/pastey.js
/home/xenoterracide/dev/Pastey/app/scripts/routes.js
/home/xenoterracide/dev/Pastey/app/scripts/services.js
/home/xenoterracide/dev/Pastey/test/spec/controllers/insert.js
/home/xenoterracide/dev/Pastey/test/test-main.js
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma/static/client.html
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma/static/karma.js
DEBUG [karma]: A browser has connected on socket nNwHTFhgWd4VWMXxdmm0
INFO [Chrome 31.0.1650 (Linux)]: Connected on socket nNwHTFhgWd4VWMXxdmm0
DEBUG [karma]: All browsers are ready, executing
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma/static/context.html
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma-requirejs/lib/require.js
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma-requirejs/lib/adapter.js
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma-jasmine/lib/jasmine.js
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/node_modules/karma-jasmine/lib/adapter.js
DEBUG [web-server]: serving: /home/xenoterracide/dev/Pastey/test/test-main.js
DEBUG [Chrome 31.0.1650 (Linux)]: Disconnected during run, waiting for reconnecting.
DEBUG [launcher]: Process Chrome exitted with code 0
ERROR [launcher]: Chrome crashed.
DEBUG [launcher]: Cleaning temp dir /tmp/karma-26802229
WARN [Chrome 31.0.1650 (Linux)]: Disconnected
Chrome 31.0.1650 (Linux): Executed 0 of 0 DISCONNECTED (4.751 secs / 0 secs)
DEBUG [launcher]: Disconnecting all browsers
DEBUG [launcher]: Killing Chrome
Warning: Task "karma:unit" failed. Use --force to continue.
Aborted due to warnings.
Elapsed time
concurrent:test 2s ▇▇▇▇▇▇▇▇▇▇▇ 25%
karma:unit 6s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 74%
Total 8s
解决方法:
这里真正重要的是karma.conf.js没有加载所有的凉亭文件.然后一些test-main.js路径错了.
files: [
'test/test-main.js',
{pattern: 'test/spec/**/*.js', included: false},
{pattern: 'app/scripts/**/*.js', included: false},
{pattern: 'app/scripts/*.js', included: false},
{pattern: 'app/bower_components/**/*.js', included: false},
],
// list of files to exclude
exclude: [
'**/*.swp',
'app/bower_components/**/*min.js',
'app/scripts/main.js',
],
我没有让创建的循环数组工作
var tests = [];
for (var file in window.__karma__.files) {
if (/spec\.js$/i.test(file)) {
tests.push(file);
console.log( file );
}
}
require.config({
baseUrl: '/base/app/scripts',
paths: {
'domReady' :'../bower_components/requirejs-domready/domReady',
'jquery' :'../bower_components/jquery/jquery',
'angular' :'../bower_components/angular/angular',
'angular-sanitize':'../bower_components/angular-sanitize/angular-sanitize',
'angular-route' :'../bower_components/angular-route/angular-route',
'angular-mocks' :'../bower_components/angular-mocks/angular-mocks',
'crypto' :'../bower_components/cryptojs/lib/Crypto',
'crypto.MD5' :'../bower_components/cryptojs/lib/MD5',
'highlight' :'../bower_components/highlightjs/highlight.pack',
},
shim: {
'jquery' : { 'exports':'jquery'},
'angular' : { 'exports':'angular', 'deps':['jquery'] },
'angular-sanitize': [ 'angular' ],
'angular-route' : [ 'angular' ],
'angular-mocks' : [ 'angular' ],
'crypto.MD5' : [ 'crypto' ],
},
deps: ['pastey','/base/test/spec/controllers/insert.js'],
callback: window.__karma__.start,
});
内容总结
以上是互联网集市为您收集整理的javascript – 转换为requirejs后,Karma不会运行测试全部内容,希望文章能够帮你解决javascript – 转换为requirejs后,Karma不会运行测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。