Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 约曼:用茉莉花和requirejs测试不起作用_Javascript_Requirejs_Gruntjs_Jasmine_Phantomjs - Fatal编程技术网

Javascript 约曼:用茉莉花和requirejs测试不起作用

Javascript 约曼:用茉莉花和requirejs测试不起作用,javascript,requirejs,gruntjs,jasmine,phantomjs,Javascript,Requirejs,Gruntjs,Jasmine,Phantomjs,我正在通过Yeoman/Grunt/Phantomjs用Jasmine测试我的主干应用程序。当我在命令行中咕哝jasmine时,我得到了错误警告:没有执行规范,是否存在配置错误?使用-force继续。由于警告而中止 甚至连一次失败的测试都没有显示出来,这是我所期待的 仅当我在规范中使用requirejs时,此错误才会出现,但如果没有它,测试将正常工作,即没有定义。所以我猜这与我如何用Requirejs和Grunt配置Jasmine有关。 但我不知道在哪里以及如何解决这个问题。我在谷歌上搜索过,但

我正在通过Yeoman/Grunt/Phantomjs用Jasmine测试我的主干应用程序。当我在命令行中咕哝jasmine时,我得到了错误警告:没有执行规范,是否存在配置错误?使用-force继续。由于警告而中止

甚至连一次失败的测试都没有显示出来,这是我所期待的

仅当我在规范中使用requirejs时,此错误才会出现,但如果没有它,测试将正常工作,即没有定义。所以我猜这与我如何用Requirejs和Grunt配置Jasmine有关。 但我不知道在哪里以及如何解决这个问题。我在谷歌上搜索过,但没什么能解决这个问题

至少这应该失败:

define(function(require) {
  var User = require('models/user');

  describe('Model : User', function() {
    var user;

    beforeEach(function() {
      user= new User;
    });

    it('should have a default string for name as "anon', function() {
      expect(user.get('name')).toEqual('anon');
    });
  });
});
带Requirejs的Jasmine设置:

require.config({
  shim: {
    jasmine: {
        exports: 'jasmine'
    },
    backbone: {
        deps: ['underscore', 'jquery'],
        exports: 'Backbone'
    }
  },
  paths: {
    jasmine: 'bower_components/jasmine/lib/jasmine-core/jasmine',
    'jasmine-html': 'bower_components/jasmine/lib/jasmine-core/jasmine-html',
    jquery: 'bower_components/jquery/dist/jquery',
    backbone: 'bower_components/backbone/backbone',
    underscore: 'bower_components/underscore/underscore',
    text: 'bower_components/requirejs-text/text',
    spec: 'spec'
  }
});

require(['jquery', 'jasmine-html'], function($, jasmine) {
  var jasmineEnv = jasmine.getEnv();
  jasmineEnv.updateInterval = 1000;

  var htmlReporter = new jasmine.HtmlReporter(),
      specs = [];

  jasmineEnv.addReporter(htmlReporter);

  jasmineEnv.specFilter = function(spec) {
    return htmlReporter.specFilter(spec);
  };

  $(function() {
    require(specs, function() {
      jasmineEnv.execute();
    });
  });
});
Grunfile:

jasmine: {
    all:{
        src : '/scripts/{,*/}*.js',
        options: {
            keepRunner: true,
            specs : 'test/spec/*Spec.js',
            vendor : [
                '<%= yeoman.app %>/bower_components/jquery/dist/jquery.js',
                '<%= yeoman.app %>/bower_components/underscore/underscore.js',
                '<%= yeoman.app %>/bower_components/backbone/backbone.js',
                '.tmp/scripts/templates.js'
            ]
        }
    }
},
requirejs: {
    dist: {
        // Options: https://github.com/jrburke/r.js/blob/master/build/example.build.js
        options: {
            baseUrl: '<%= yeoman.app %>/scripts',
            optimize: 'none',
            paths: {
                'templates': '../../.tmp/scripts/templates',
                'jquery': '../../<%= yeoman.app %>/bower_components/jquery/dist/jquery',
                'underscore': '../../<%= yeoman.app %>/bower_components/underscore/underscore',
                'backbone': '../../<%= yeoman.app %>/bower_components/backbone/backbone'
            },
            preserveLicenseComments: false,
            useStrict: true,
            wrap: true
        }
    }
},...
请帮忙,谢谢