Anyone knows how to solve/remove this very annoying WARNING?
Running "karma:unit" (karma) task
INFO [karma]: Karma v0.12.23 server started at http://localhost:8080/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Windows 7)]: Connected on socket rrNTMtmcd322dIl7A9fa with id 95590782
WARN [web-server]: 404: /views/nav/offline.html
WARN [web-server]: 404: /views/scan/scan.qr.html
karma.conf.js
// Karma configuration
// http://karma-runner.github.io/0.12/config/configuration-file.html
// Generated on 2014-08-26 using
// generator-karma 0.8.3
module.exports = function (config) {
'use strict';
config.set({
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// base path, that will be used to resolve files and exclude
basePath: '../',
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-touch/angular-touch.js',
'bower_components/angular-ui-router/release/angular-ui-router.js',
'bower_components/angular-local-storage/angular-local-storage.js',
'bower_components/ionic/release/js/ionic.js',
'bower_components/ionic/release/js/ionic-angular.js',
'app/scripts/**/*.js',
'test/spec/**/*.js'
],
// list of files / patterns to exclude
exclude: [],
// web server port
port: 8080,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: [
'PhantomJS'
],
// Which plugins to enable
plugins: [
'karma-phantomjs-launcher',
'karma-jasmine'
],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,
colors: true,
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO
// Uncomment the following lines if you are using grunt's server to run the tests
// proxies: {
// '/': 'http://localhost:9000/'
// },
// URL root prevent conflicts with the site root
// urlRoot: '_karma_'
});
};
app.js
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
// ACCOUNT
.state('account', {
abstract: true,
url: '/account',
templateUrl: 'index.html'
})
.state('account.main', {
url: '',
templateUrl: 'views/account/account.main.html'
})
.
.
.
// MENU
.state('menu', {
abstract: true,
url: '/menu',
templateUrl: 'views/nav/menu.html'
})
.state('menu.main', {
url: '/main',
views: {
'menuContent': {
templateUrl: 'views/dash/dash.main.html'
}
}
})
.
.
.
// OFFLINE MENU
.state('offline', {
abstract: true,
url: '/offline',
templateUrl: 'views/nav/offline.html'
})
.state('offline.product', {
url: '/product',
views: {
'menuContent': {
templateUrl: 'views/product/product.list.html'
}
}
})
.state('offline.qr', {
url: '/qr',
views: {
'menuContent': {
templateUrl: 'views/scan/scan.qr.html'
}
}
})
.state('offline.cart', {
url: '/cart',
views: {
'menuContent': {
templateUrl: 'views/cart/cart.list.html'
}
}
})
;
$urlRouterProvider.otherwise('/account');
})
I have also tried this related issue:
how to fix 404 warnings for images during karma unit testing
With no luck.
More Info
I have also tried the following:
1) Adding path to html:
'app/scripts/**/*.js',
'app/views/**/*.html',
'test/spec/**/*.js'
2) Create pattern:
'app/scripts/**/*.js',
'test/spec/**/*.js',
{pattern: 'app/views/**', watched: false, included: false, served: true}
3) Exclude the path to html files:
// list of files / patterns to exclude
exclude: ['app/views/**'],
But nothing works, the warning still exist. I'm assuming that this could be a bug?
Edit 1
I just did what Chad Robinson says, and the next warning is about missing index.html
.
So what I did is this:
proxies: {
'/views/': '/app/views/',
'/index.html': '/app/index.html'
}
But there is still warning:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Grabhut.MobileApp\Grabhut>grunt
Running "newer:jshint" (newer) task
Running "newer:jshint:all" (newer) task
No newer files to process.
Running "newer:jshint:test" (newer) task
No newer files to process.
Running "clean:server" (clean) task
Cleaning .tmp...OK
Running "concurrent:test" (concurrent) task
Running "compass:dist" (compass) task
directory .tmp/styles
write .tmp/styles/icomoon.css (0.007s)
write .tmp/styles/override.css (0.055s)
Running "compass:server" (compass) task
Done, without errors.
Running "autoprefixer:dist" (autoprefixer) task
File .tmp/styles/icomoon.css created.
C:\Grabhut.MobileApp\Grabhut>grunt
Running "newer:jshint" (newer) task
Running "newer:jshint:all" (newer) task
No newer files to process.
Running "newer:jshint:test" (newer) task
No newer files to process.
Running "clean:server" (clean) task
Cleaning .tmp...OK
Running "concurrent:test" (concurrent) task
Running "compass:dist" (compass) task
directory .tmp/styles
write .tmp/styles/icomoon.css (0.007s)
write .tmp/styles/override.css (0.054s)
Running "compass:server" (compass) task
Done, without errors.
Running "autoprefixer:dist" (autoprefixer) task
File .tmp/styles/icomoon.css created.
File .tmp/styles/override.css created.
Running "connect:test" (connect) task
Started connect web server on http://localhost:9001
Running "karma:unit" (karma) task
C:\Grabhut.MobileApp\Grabhut\test\karma.conf.js:73
C:\Grabhut.MobileApp\Grabhut>grunt
Running "newer:jshint" (newer) task
Running "newer:jshint:all" (newer) task
No newer files to process.
Running "newer:jshint:test" (newer) task
No newer files to process.
Running "clean:server" (clean) task
Cleaning .tmp...OK
Running "concurrent:test" (concurrent) task
Running "compass:dist" (compass) task
directory .tmp/styles
write .tmp/styles/icomoon.css (0.007s)
write .tmp/styles/override.css (0.054s)
Running "compass:server" (compass) task
Done, without errors.
Running "autoprefixer:dist" (autoprefixer) task
File .tmp/styles/icomoon.css created.
C:\Grabhut.MobileApp\Grabhut>grunt
Running "newer:jshint" (newer) task
Running "newer:jshint:all" (newer) task
No newer files to process.
Running "newer:jshint:test" (newer) task
No newer files to process.
Running "clean:server" (clean) task
Cleaning .tmp...OK
Running "concurrent:test" (concurrent) task
Running "compass:dist" (compass) task
directory .tmp/styles
write .tmp/styles/icomoon.css (0.007s)
write .tmp/styles/override.css (0.055s)
Running "compass:server" (compass) task
Done, without errors.
Running "autoprefixer:dist" (autoprefixer) task
File .tmp/styles/icomoon.css created.
File .tmp/styles/override.css created.
Running "connect:test" (connect) task
Started connect web server on http://localhost:9001
Running "karma:unit" (karma) task
INFO [karma]: Karma v0.12.23 server started at http://localhost:8080/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Windows 7)]: Connected on socket PFqYQtg4gwm4psBKKJ5T with id 70053285
PhantomJS 1.9.7 (Windows 7): Executed 0 of 0 ERROR (0.001 secs / 0 secs)
Warning: Task "karma:unit" failed. Use --force to continue.
Aborted due to warnings.
Execution Time (2014-09-29 02:06:16 UTC)
concurrent:test 6.3s ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 78%
autoprefixer:dist 97ms ■■ 1%
connect:test 433ms ■■■■■■■■■ 5%
karma:unit 1.2s ■■■■■■■■■■■■■■■■■■■■■■■ 15%
Total 8.1s
C:\Grabhut.MobileApp\Grabhut>
What's wrong with Karma?
Edit 2 Karma.conf.js
See karama config update at the bottom:
// Karma configuration
// http://karma-runner.github.io/0.12/config/configuration-file.html
// Generated on 2014-08-26 using
// generator-karma 0.8.3
module.exports = function (config) {
'use strict';
config.set({
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// base path, that will be used to resolve files and exclude
basePath: '../',
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-touch/angular-touch.js',
'bower_components/angular-ui-router/release/angular-ui-router.js',
'bower_components/angular-local-storage/angular-local-storage.js',
'bower_components/ionic/release/js/ionic.js',
'bower_components/ionic/release/js/ionic-angular.js',
'app/scripts/**/*.js',
'test/spec/**/*.js'
],
// list of files / patterns to exclude
exclude: [],
// web server port
port: 8080,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: [
'PhantomJS'
],
// Which plugins to enable
plugins: [
'karma-phantomjs-launcher',
'karma-jasmine'
],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,
colors: true,
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO,
// Uncomment the following lines if you are using grunt's server to run the tests
proxies: {
'/views/': '/app/views/',
'/index.html': '/app/index.html'
}
// URL root prevent conflicts with the site root
// urlRoot: '_karma_'
});
};
Based on your Karma config, it looks like you are running this from the root level of your project. But your application is in app/
, and your templates are relative to that path... that is, you are accessing /views/nav/offline.html
, not /app/views/nav/offline.html
. Karma doesn't know what to do with this.
Try a proxy:
proxies = {
'/views/': '/app/views/'
};
This will tell Karma to treat /views/* requests as though they were for /app/views/*. Alternatively, you can move your configuration for Karma down a level, into app/
itself. Then change the include paths and other related items to the correct URLs and the problem will go away. (This is what I do.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With