Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WARN [web-server]: 404: /views/nav/offline.html

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_'
    });
};  

enter image description here

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_'
    });
};
like image 801
fiberOptics Avatar asked Sep 26 '14 17:09

fiberOptics


1 Answers

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.)

like image 156
Chad Robinson Avatar answered Oct 19 '22 23:10

Chad Robinson