【问题标题】:Why is PhantomJS hanging when running Jasmine tests on RequireJS project with Grunt?为什么使用 Grunt 在 RequireJS 项目上运行 Jasmine 测试时 PhantomJS 会挂起?
【发布时间】:2014-08-01 08:23:33
【问题描述】:

我正在尝试使用开源 Grunt-Boilerplate 项目,在此 blog post 中进行了描述。

我下载latest.zip (commit ref: 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

这里有什么问题?我该如何解决这个问题,以便我可以用 grunt 运行 Jasmine?


上下文

更新package.json(跟随npm 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

【问题讨论】:

    标签: requirejs gruntjs jasmine phantomjs


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      相关资源
      最近更新 更多