问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/40470806/how-to-configure-angular2-quickstart-to-run-phantomjs