It's actually quite simple. All you need to do is:
1/ Start by installing karma
npm install -g karma
2/ Next, install the necessary dependencies for ng-scenario and karma-ng-scenario
npm install ng-scenario
npm install karma-ng-scenario --save-dev
3/ Then, you need to create or modify the karma e2e configuration if you require a proxy. This is usually the case
as dojo runs on a different server than karma. In this scenario, you
specify a specific port for karma and set up a proxy to your server. Below
is an example of how your configuration could look like:
module.exports = function(config) { config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['ng-scenario'],
// list of files / patterns to load in the browser
files: [
'https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js',
'test/e2e/**/*.js'
],
// list of files / patterns to exclude
exclude: [],
// web server port
port: 8033,
runnerPort : 9100,
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: ['Chrome'],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,
// Uncomment the following lines if you are using grunt's server to run the tests
proxies: {
'/': 'http://localhost:8080/'
}, // URL root prevent conflicts with the site root
urlRoot: '_karma_' }); };
- Finally, execute karma with the end to end configuration
karma start karma-e2e.conf.js
And there you have it, your code is now set up for successful testing :)
describe ( 'Publications', function ()
{
beforeEach (
function ()
{
console.log ( "before each" );
browser ().navigateTo ( "yourPageToTestUrl" );
}
);
it ( 'should filter results', function ()
{
expect ( repeater ( '.Publication' ).count () ).toEqual ( 4 );
} );
} );