示例#1
0
    grunt.registerTask('cover-specs', 'generate test coverage', function () {

        var Command = require('istanbul/lib/command');

        require('istanbul/lib/register-plugins');

        var cmd = Command.create("cover")

        var done = this.async();

        var commandPath = path.resolve(__dirname,
            "../node_modules/grunt-jasmine-node/node_modules/.bin/jasmine-node");

        cmd.run([commandPath,  "spec"], function (err) {
            if(err) {
                grunt.fail.warn(err);
            }

            submitToCoveralls(path.resolve(__dirname, '../coverage/lcov.info'), function(result) {
               if (result) {
                   grunt.log.ok();

                   done(true);
               } else {
                   grunt.log.error("Failed to submit coverage results to coveralls");

                   done(false);
               }
            });
        });
    });
	this.create = function(options){
		var checkCoverageCommand = commandFactory.create('check-coverage');

		return streamFactory.create(function(done){
			var self = this,
				checkCoverageArguments = checkCoverageArgumentBuilder.build(options);
			
			checkCoverageCommand.run(checkCoverageArguments, function(error){
				if (error){
					var pluginError = new PluginError('gulp-istanbul-enforcer', error);
					self.emit('error', pluginError);
				}
                self.emit('end');
				done();
			});
		});
	};