我正在尝试创建一个节点样板,我正在尝试创建一个运行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 举报,一经查实,本站将立刻删除。