微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jasmine,Grunt,RequireJS在测试输出上失速

我正在尝试创建一个节点样板,我正在尝试创建一个运行Jasmine测试的任务.我在Gruntfile.js中有以下配置:

jasmine: {
  src : ['static/test/spec/**/*.js'],options: {
    host: 'http://localhost:<%= connect.test.port %>/',// specs : 'static/test/spec/**/*.js',template: require('grunt-template-jasmine-requirejs'),templateOptions: {
      requireConfigFile: 'static/test/SpecRunner.js',requireConfig: {
        baseUrl: './'
      }
    }
  }
},connect: {
  test: {
    port: 8082
  }
}
....
grunt.registerTask('jasmine-test',['connect','jasmine']);

当我运行任务时,我没有收到任何错误,但是我没有比这更进一步:

Running "connect:test" (connect) task
Started connect web server on localhost:8000.

Running "jasmine:src" (jasmine) task
Testing jasmine specs via phantom

创建了_SpecRunner.html文件,当我在浏览器中查看文件时,我不仅看不到任何错误,而且还看到我的jasmine测试运行正常.我错过了什么让咕噜咕噜的任务挂起来了?

干杯,

Kianosh

解决方法

我能够让你的例子工作得很好,你在这里工作得很好.我做了一些修改,但得到了相同的结果.您正在使用的是connect,它产生一个本地Web服务器,然后测试在浏览器中运行.所以,你的任务没有挂起,只是运行服务器.

但从听起来,您可能希望您的测试在终端中运行?如果是这样,我有一个相当不错的解决方案:

的package.json

{

"name": "Jasmine Tests","description": "Jasmine Testing","version": "0.0.1","devDependencies": {
    "grunt": "0.4.x","grunt-contrib-watch": "~0.2.0","grunt-contrib-jshint": "~0.4.3","grunt-contrib-jasmine": "~0.4.2","phantomjs": "1.8.2-0",}
}

Gruntfile.js

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON("package.json"),watch: {
      grunt: {
        files: ["Gruntfile.js","package.json"],tasks: "default"
      },javascript: {
        files: ["src/client/**/*.js","specs/**/*Spec.js"],tasks: "test"
      }
    },jasmine: {
      src: "src/client/js/*.js",options: {
        specs: "specs/client/*Spec.js"
      }
    },jshint: {
      all: [
        "Gruntfile.js","src/**/*.js","spec/**/*.js"
      ],options: {
        jshintrc: ".jshintrc"
      }
    }
  });
  grunt.loadNpmtasks("grunt-contrib-watch");
  grunt.loadNpmtasks("grunt-contrib-jshint");
  grunt.loadNpmtasks("grunt-contrib-jasmine");
  grunt.registerTask("test",["jshint","jasmine"]);
  grunt.registerTask("default",["test"]);
};

您可以将文件结构更改为适合您的任何内容.设置这两个文件运行以下命令:

npm install

grunt test

要么

grunt watch

现在我确实添加了一些东西,比如jshint,并且手表……手表是可选的,但它真的很棒. jshint是我的观点中的必备条件,但请随意将其从解决方案中删除.

密钥真的是phantomjs,它使您能够在“幻像”浏览器中运行这些测试,该浏览器输出到终端.

您还需要根据自己的喜好自定义目录.

在这上面发了一个good blog post(我也去了服务器端测试).

编辑:如果你选择去那条路线,你还需要一个.jshintrc文件.

.jshintrc

{
  "curly"   : true,"eqeqeq"  : true,"immed"   : true,"latedef" : true,"newcap"  : true,"noarg"   : true,"sub"     : true,"undef"   : true,"boss"    : true,"eqnull"  : true,"node"    : true,"es5"     : true,"globals" : {
    "it"         : false,"xit"        : false,"describe"   : false,"xdescribe"  : false,"beforeEach" : false,"afterEach"  : false,"expect"     : false,"spyOn"      : false
  }
}

希望这可以帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐