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

时间:2014-09-26 17:37:35

标签: angularjs gruntjs karma-runner

任何人都知道如何解决/删除这个非常烦人的警告?

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

})

我也尝试了这个相关的问题:
how to fix 404 warnings for images during karma unit testing
没有运气。

更多信息

我也尝试了以下内容:
1)添加到html的路径:

'app/scripts/**/*.js',
'app/views/**/*.html',
'test/spec/**/*.js'  

2)创建模式:

'app/scripts/**/*.js',            
'test/spec/**/*.js',
{pattern: 'app/views/**', watched: false, included: false, served: true}  

3)排除html文件的路径:

// list of files / patterns to exclude
exclude: ['app/views/**'],

但没有任何作用,警告仍然存在。我假设这可能是一个错误?

修改1

我刚刚做了Chad Robinson所说的话,下一个警告就是失踪index.html 所以我做的是:

proxies: {
    '/views/': '/app/views/',
    '/index.html': '/app/index.html'
}  

但仍有警告:

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>       

Karma有什么问题?

编辑2 Karma.conf.js

请参阅底部的karama配置更新:

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

1 个答案:

答案 0 :(得分:13)

根据您的Karma配置,看起来您正在从项目的根级别运行它。但是您的应用程序位于app/,而您的模板相对到该路径......即您正在访问/views/nav/offline.html,而不是/app/views/nav/offline.html。卡玛不知道该怎么办。

尝试代理:

proxies =  {
  '/views/': '/app/views/'
};

这将告诉Karma将/ views / *请求视为/ app / views / *。或者,您可以将Karma的配置向下移动到app/本身。然后将包含路径和其他相关项更改为正确的URL,问题就会消失。 (这就是我的工作。)