Tests do not work with new angular project generator (CoffeeScript)

First, I completed the angular project using the Yeoman angular generator generator.

$ mkdir project && cd project $ yo angular --coffee ... [?] Would you like to use Sass (with Compass)? Yes [?] Would you like to include Twitter Bootstrap? Yes [?] Would you like to use the Sass version of Twitter Bootstrap? Yes [?] Which modules would you like to include? angular-resource.js, angular-route.js ... 

Karma tests with grunt test do not work right out of the box , so you need to install a few additional dependencies manually:

 $ npm install karma-jasmine --save-dev $ npm install karma-chrome-launcher --save-dev 

After that, tests still fail. From the errors, it seems that coffeescript files are interpreted as JavaScript.

 $ grunt test Running "karma:unit" (karma) task INFO [karma]: Karma v0.12.1 server started at http://localhost:8080/ INFO [launcher]: Starting browser Chrome WARN [watcher]: Pattern "/Users/karl/projects/resources/test/mock/**/*.coffee" does not match any file. INFO [Chrome 33.0.1750 (Mac OS X 10.9.2)]: Connected on socket W35K_wuKKVx2BweeP-F2 with id 48564140 Chrome 33.0.1750 (Mac OS X 10.9.2) ERROR Uncaught SyntaxError: Unexpected token > at /Users/karl/projects/resources/app/scripts/app.coffee:7 Chrome 33.0.1750 (Mac OS X 10.9.2) ERROR Uncaught SyntaxError: Unexpected string at /Users/karl/projects/resources/app/scripts/controllers/header.coffee:4 Chrome 33.0.1750 (Mac OS X 10.9.2) ERROR Uncaught SyntaxError: Unexpected string at /Users/karl/projects/resources/app/scripts/controllers/main.coffee:4 Chrome 33.0.1750 (Mac OS X 10.9.2) ERROR Uncaught SyntaxError: Unexpected string at /Users/karl/projects/resources/test/spec/controllers/main.coffee:3 
+6
source share
1 answer

It looks like the new angular CoffeeScript generator project requires a karma-coffee-preprocessor dependency, as well as a preprocessor configuration object.

I opened a transfer request so that this would be fixed in the karma generator, but in the meantime you can fix it manually, first run the following command on the command line:

 npm install --save-dev karma-chrome-launcher karma-firefox-launcher karma-safari-launcher karma-opera-launcher karma-ie-launcher karma-jasmine karma-coffee-preprocessor 

And then add this to karma.conf.js :

 preprocessors: { '**/*.coffee': ['coffee'] }, 
+10
source

All Articles