Error in angular app testing using Karma & Jasmine

903 views
Skip to first unread message

Vishal Rajole

unread,
Feb 20, 2014, 2:28:18 AM2/20/14
to ang...@googlegroups.com
Hello Friends,
                     I am doing Login page angular app testing using Karma and Jasmine.

1)  I want to verify that form element is present in html page using Karma+jasmine. Please help me.
2) I am getting "ReferenceError: browser is not defined".  error in following code:
               
                  it('should automatically redirect to landing page when location hash/fragment is empty', function()
                  {
                            expect(browser().location().url()).toBe("/home");
                  });



here is karma conf file.

// Karma configuration
// http://karma-runner.github.io/0.10/config/configuration-file.html

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: ['jasmine','ng-scenario'],

    // list of files / patterns to load in the browser
    files: [
      'app/bower_components/angular/angular.js',
      'app/bower_components/angular-mocks/angular-mocks.js',
      'app/bower_components/angular-resource/angular-resource.js',
      'app/bower_components/angular-cookies/angular-cookies.js',
      'app/bower_components/angular-sanitize/angular-sanitize.js',
      'app/bower_components/angular-route/angular-route.js',
     
      'app/scripts/*.js',
      'app/scripts/**/*.js',
      'test/mock/**/*.js',
      'test/spec/**/*.js'
    ],

    // list of files / patterns to exclude
    exclude: [],

    // web server port
    port: 8080,

    // 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'],
    plugins : [
            'karma-ng-scenario',
            //'karma-junit-reporter',
            'karma-chrome-launcher',
            //'karma-firefox-launcher',
            //'karma-phantomjs-launcher',
            'karma-jasmine'
            ],



    // Continuous Integration mode
    // if true, it capture browsers, run tests and exit
    singleRun: true
  });
};

Vanya Dineva

unread,
Feb 21, 2014, 1:44:46 PM2/21/14
to ang...@googlegroups.com
Check this answer:

http://stackoverflow.com/a/16285441

if it doesn't solve your issue, please post a jsfiddle/plunk with your code so i can take a look

Vanya

Dheeraj Moudgil

unread,
Nov 24, 2016, 7:43:30 AM11/24/16
to Angular
I had same problem with my e2e tests and figured out something interesting.
The `jasmine` and `ng-scenario` are totally different frameworks. These two cannot be used at the same time. Jasmine is used for unit testing the application where as ng-scenario is used to do e2e testing. Try using ng-scenario as `browser` if you are carrying out e2e tests (as I can see).
I have changed your config file a bit and its working fine with my app. Take a look at the below code snippet.

    var path = require('path');
var webpackConfig = require('./webpack.config');
var entry = path.resolve(webpackConfig.context, webpackConfig.entry);
var preprocessors = {};
preprocessors[entry] = ['webpack'];
module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['ng-scenario'],


    // list of files / patterns to load in the browser
    files: [entry],
    webpack:webpackConfig,

    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors:preprocessors,


    // test results reporter to use
    // possible values: 'dots', 'progress'
    reporters: ['progress'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Concurrency level
    // how many browser should be started simultanous
    concurrency: Infinity,
    plugins:[
      require('karma-webpack'),
      ('karma-chai'),
      ('karma-mocha'),
      ('karma-chrome-launcher')
    ]
  })
Reply all
Reply to author
Forward
0 new messages