使用Grunt在RequireJS项目上运行Jasmine测试时,为什么PhantomJS会挂起?

时间:2014-08-01 08:23:33

标签: requirejs gruntjs jasmine phantomjs

我尝试使用此Grunt-Boilerplate中描述的开源blog post项目。

我下载latest.zip(提交参考号码:e7e6b15c2f)并解压缩包。

我运行了以下内容来更新依赖关系,如Gruntfile.js

中所列
npm install grunt --save-dev
npm install grunt-contrib-watch --save-dev
npm install grunt-contrib-jshint --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-requirejs --save-dev
npm install grunt-contrib-sass --save-dev
npm install grunt-contrib-imagemin --save-dev
npm install grunt-contrib-htmlmin --save-dev
npm install grunt-contrib-connect --save-dev
npm install grunt-contrib-jasmine --save-dev
npm install grunt-template-jasmine-requirejs --save-dev
npm install grunt-template-jasmine-istanbul --save-dev
npm install load-grunt-tasks --save-dev
npm install time-grunt --save-dev

一旦完成,当我运行grunt jasmine PhantomJS似乎在这个阶段永远挂起:

tom ~/_tmp/Grunt-Boilerplate-master ϟ grunt jasmine
>> Local Npm module "grunt-template-jasmine-istanbul" not found. Is it installed?
>> Local Npm module "grunt-template-jasmine-requirejs" not found. Is it installed?    

Running "jasmine:run" (jasmine) task
Testing jasmine specs via PhantomJS

这里有什么问题?我怎样才能解决问题,以便我可以用咕噜声运行Jasmine?


上下文

更新了package.jsonnpm install ... --save-dev之后)

{
  "name": "Integralist",
  "version": "0.1.0",
  "description": "This is a project set-up using Grunt to take case of some standard tasks such as: compiling AMD based modules using RequireJS, watching/compiling Sass into CSS, watching/linting JS code and some other things such as running unit tests",
  "main": "Gruntfile.js",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-uglify": "~0.5.1",
    "grunt-contrib-requirejs": "~0.4.4",
    "grunt-contrib-sass": "~0.7.3",
    "grunt-contrib-imagemin": "~0.7.1",
    "grunt-contrib-htmlmin": "~0.3.0",
    "grunt-contrib-jasmine": "~0.7.0",
    "grunt-template-jasmine-istanbul": "~0.3.0",
    "grunt-template-jasmine-requirejs": "~0.2.0",
    "grunt-contrib-connect": "~0.8.0",
    "load-grunt-tasks": "~0.6.0",
    "time-grunt": "~0.4.0"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git@github.com:Integralist/Grunt-Boilerplate.git"
  },
  "keywords": [
    "Grunt",
    "JavaScript"
  ],
  "author": "Mark McDonnell",
  "license": "MIT"
}

PhantomJS版本:

tom ~/_tmp/Grunt-Boilerplate-master ϟ phantomjs -v
1.9.7

1 个答案:

答案 0 :(得分:0)

事实证明,对于Grunt-Boilerplate项目,您需要运行任务grunt test任务而不是grunt jasmine,以确保在茉莉花测试之前Connect服务器正在运行。

参考:https://github.com/Integralist/Grunt-Boilerplate/issues/5#issuecomment-50967508