从Grunt任务运行Mocha时隐藏堆栈跟踪

时间:2013-08-30 05:51:16

标签: gruntjs mocha

我需要在测试失败时看到堆栈跟踪,但是当Grunt运行Mocha测试套件时会隐藏它。当我自己运行测试(mocha --recursive)时,我会得到一个堆栈跟踪:

site/server/server.js:10
    server.use( express.static( path.join( __dirname( '../client' ))));
                                           ^
TypeError: string is not a function
    at ...

但是有了这个Gruntfile:

'use strict';

var should = require( 'should' );

module.exports = function( grunt ) {
    grunt.initConfig({
        cafemocha: {
            test: {
                src: 'server/test/**/test-*.js',
                options: {/*
                    ui: 'bdd',
                    growl: true,
                    coverage: true,
                    reporter: 'spec'
                */}
            }
        },

        watch: {
            files: [
                'server/**/*.js',
                'Gruntfile.js',
                'package.json'
            ],
            tasks: [ 'test' ]
        },

        complexity: {
            generic: {
                src: [
                    'server/**/*.js',
                    'Gruntfile.js'
                ],
                options: {
                    cyclomatic: 2,
                    halstead: 9,
                    maintainability: 80
                }
            }
        }
    });

    grunt.loadNpmTasks( 'grunt-notify' );
    grunt.loadNpmTasks( 'grunt-contrib-watch' );
    grunt.loadNpmTasks( 'grunt-cafe-mocha' );
    grunt.loadNpmTasks( 'grunt-complexity' );

    grunt.registerTask( 'default', [ 'cafemocha' ]);
    grunt.registerTask( 'test', [ 'cafemocha', 'complexity' ]);
};

我得到的只是错误摘要:

$ grunt test
Running "cafemocha:test" (cafemocha) task
Warning: string is not a function Use --force to continue.

Aborted due to warnings.

1 个答案:

答案 0 :(得分:12)

默认情况下,堆栈跟踪在grunt中隐藏。使用grunt --stack运行grunt以显示它们。