Fernando Costa Fernando Costa - 25 days ago 11
Javascript Question

How to configure Angular2 Quickstart to run phantomjs?

I am trying to figure out how to run the tests of Angular2 Quickstart with phantomjs.

I thought these steps were enough to configure Karma:

1. Clone the repository

$ git clone https://github.com/angular/quickstart.git


$ cd quickstart


2. Install phantomjs and phantomjs launcher

$ npm install --save-dev phantomjs


$ npm install --save-dev karma-phantomjs-launcher


3. Change karma.conf.js

// First change

require('karma-chrome-launcher') => require('karma-phantomjs-launcher')

// Second change

browsers: ['Chrome'] => browsers: ['PhantomJS']

4. Install Quickstart App

$ npm install


5. Run tests

$ npm run test-once


The following error is reported:


...
PhantomJS 2.1.1 (Linux 0.0.0) ERROR
TypeError: undefined is not a function (evaluating 'System.config')
at karma-test-shim.js:30
...


What am I missing or doing wrong?

Thanks.

Answer

There's an error before that one: a 404 trying to find the system-polyfills.js.

404: /base/node_modules/systemjs/dist/system-polyfills.js

If you add that to the karma config, the error will go away.

files: [
  // System.js for module loading
  'node_modules/systemjs/dist/system.src.js',
  'node_modules/systemjs/dist/system-polyfills.js',

Not quite sure what the difference is (why it's not needed for Chrome). I'm guessing this issue is yours. You should ask them.

Comments