ariya / phantomjs

Scriptable Headless Browser
http://phantomjs.org
BSD 3-Clause "New" or "Revised" License
29.44k stars 5.76k forks source link

Grunt+Jasmine+PhantomJS error.onError Parse Error #11377

Closed PhillyWebGuy closed 11 years ago

PhillyWebGuy commented 11 years ago

I have:

node v0.8.9 npm 1.1.61 grunt-cli v0.1.6 grunt v0.4.1 phantomjs 1.9.0 Mac OS 10.8.1

I execute the following from a terminal:

node_modules/grunt-cli/bin/grunt -v -d 1

And I (partially) get:

Testing jasmine specs via phantom

[D] ["/Users/xxxxx/htdocs/eConnect/poc/com.xxxxxxx.poc/knockout/node_modules/grunt-contrib-jasmine/node_modules/grunt-lib-phantomjs/phantomjs/main.js","/var/folders/zp/tj_1pvw52ylc8mc8fsqv65tw0000gn/T/1370273246790.809","_SpecRunner.html","{\"version\":\"1.3.1\",\"timeout\":10000,\"styles\":[],\"specs\":[],\"helpers\":[],\"vendor\":[],\"outfile\":\"_SpecRunner.html\",\"host\":\"\",\"template\":\"/Users/xxxxxx/htdocs/xxxxxx/poc/com.xxxxx.poc/knockout/node_modules/grunt-contrib-jasmine/tasks/jasmine/templates/DefaultRunner.tmpl\",\"templateOptions\":{},\"phantomjs\":{},\"junit\":{}}"]
[D] ["phantomjs","private","version",{"major":1,"minor":9,"patch":0}]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxx/htdocs/xxxxx/poc/com.xxxxx.poc/knockout/_SpecRunner.html"]
[D] ["phantomjs","onUrlChanged","file:///Users/xxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/_SpecRunner.html"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine.css"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine.js"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine-html.js"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/tests/phonenumbers/phoneModelTest.html"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/reporter.js"]
[D] ["phantomjs","onResourceRequested","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine-helper.js"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/_SpecRunner.html"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine.css"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine.js"]
[D] ["phantomjs","onInitialized"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine-html.js"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/tests/phonenumbers/phoneModelTest.html"]
[D] ["phantomjs","error.onError","SyntaxError: Parse error",[]]
>> SyntaxError: Parse error
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/reporter.js"]
[D] ["phantomjs","onResourceReceived","file:///Users/xxxxxx/htdocs/eConnect/poc/com.xxxxxx.poc/knockout/.grunt/grunt-contrib-jasmine/jasmine-helper.js"]
[D] ["phantomjs","jasmine.reportRunnerStarting",[]]
Starting...
[D] ["phantomjs","jasmine.reportRunnerResults",{}]
Runner finished
0 specs in 0s.
[D] ["phantomjs","jasmine.reportJUnitResults",{"suites":[],"consolidatedSuites":{}}]
[D] ["phantomjs","jasmine.done.PhantomReporter"]
>> 0 failures

In particular, I am interested in:

 ["phantomjs","error.onError","SyntaxError: Parse error",[]]
>> SyntaxError: Parse error

And, also the fact that it should be running at least 1 spec, but appears not to be when it reports 0 specs in 0s.

JamesMGreene commented 11 years ago

A parse error means that one of the JS files (hopefully on the client-side, at least) has invalid syntax. I'd recommend starting by syntax-checking your files first... since you're using Grunt already, it's as easy as just hooking up a task plugin like grunt-jsvalidate or grunt-contrib-jshint.

Other than that, this is an issue with the setup of grunt-contrib-jasmine (or grunt-lib-phantomjs), not PhantomJS itself. Please create a new issue in one of those repos if syntax-checking your own JS files does not resolve the issue.