[フレーム]
Last Updated: February 25, 2016
·
5.832K
· blrandel

Getting e2e testing working in Angular.js

Inexplicably, you may have discovered that the Yeoman karma-generator only configures your application for specs/unit tests by default.

To get integration/e2e tests up and running, you'll need to do the following:

Add an e2e block in Gruntfile.js:

karma: {
 e2e: {
 configFile: 'karma-e2e.conf.js'
 },
 unit: {
 configFile: 'karma.conf.js',
 singleRun: true
 }
 },

Add the following to karma-e2e.conf.js:

 proxies = {
 // change this if you've changed your grunt server port. default is 9000
 '/': 'http://localhost:9000' 
};

 urlRoot = '/__e2e/';

If you want your integration tests running continuously, ensure singleRun is false and autoWatch is true.

Finally, ensure you wrap your tests in a beforeEach:


describe("E2E Tests", function() {
 beforeEach(function() {
 browser().navigateTo('/');
 });

 it('should navigate to somewhere fancy', function() {
 foo();
 });
});

To get the test server going, now simply run:

grunt karma:e2e

No doubt this will be rectified in upcoming releases, but it does seem like an odd omission.

1 Response
Add your response

Thanks for the post! and don't forget to spin up the the app server itself at localhost:9000 :)

over 1 year ago ·

AltStyle によって変換されたページ (->オリジナル) /