+ All Categories
Home > Technology > Karma - JS Test Runner

Karma - JS Test Runner

Date post: 17-May-2015
Category:
Upload: sebastiano-armeli-battana
View: 7,713 times
Download: 1 times
Share this document with a friend
Description:
Talk given at MelbJS - August 2013
Popular Tags:
34
Karma JS Test Runner Sebastiano Armeli @sebarmeli 14/8/2013 - MelbJS
Transcript
Page 1: Karma - JS Test Runner

KarmaJS Test Runner

Sebastiano Armeli@sebarmeli14/8/2013 - MelbJS

Page 2: Karma - JS Test Runner

KarmaJS Test Runner

Sebastiano Armeli@sebarmeli

Page 3: Karma - JS Test Runner

KarmaJS Test Runner

Sebastiano Armeli@sebarmeli

Page 4: Karma - JS Test Runner

Test Framework

How you write your tests

Page 5: Karma - JS Test Runner

Test Environment

Where you execute your tests

Page 6: Karma - JS Test Runner

Test Runner

How you run your test

Page 7: Karma - JS Test Runner

What do we need from a Test Runner?

Page 8: Karma - JS Test Runner

it (‘should be fast’)

Page 9: Karma - JS Test Runner

it (‘should use real browsers’)

Page 10: Karma - JS Test Runner

it (‘should be reliable’)

Page 11: Karma - JS Test Runner

it (‘should be reliable’)

Page 12: Karma - JS Test Runner

Karma

Page 13: Karma - JS Test Runner

Client

socket.io

Client

Client

socket.io

socket.io

watcher

reporter

manager

web server

preprocessor

Server

Page 14: Karma - JS Test Runner

Client

socket.io

Client

Client

socket.io

socket.io

watcher

reporter

manager

web server

http

http

http

preprocessor

Server

Page 15: Karma - JS Test Runner

Domain Specific Language (DSL) for defining tests

npm install -g karma // Ready to use

Page 16: Karma - JS Test Runner

Domain Specific Language (DSL) for defining tests

npm install -g karma

karma init // Create config file

Page 17: Karma - JS Test Runner

Domain Specific Language (DSL) for defining tests

npm install -g karma

karma init

karma start // Karma starts listening

Page 18: Karma - JS Test Runner

Domain Specific Language (DSL) for defining tests

npm install -g karma

karma init

karma start

karma run // Karma runs the tests

Page 19: Karma - JS Test Runner

module.exports = function(config) { config.set({ basePath: './../..',

frameworks: ['jasmine', ‘requirejs’],

files: [ ‘spec/javascripts/test-main.js’, {pattern: 'spec/javascripts/fixtures/**/*.html', watched: false},

{pattern: 'app/assets/javascripts/**/*.js'}, {pattern: 'spec/javascripts/**/*.js'}

], port: 9876, //default

browsers: ['Chrome’, ‘ChromeCanary’],

singleRun: false,

autoWatch: true });}

Page 20: Karma - JS Test Runner

PluginsBrowser Launchers

Test Framework

Reporters

Preprocessors

Page 21: Karma - JS Test Runner

karma-!refox-launcher

karma-safari-launcher

karma-opera-launcher

karma-ie-launcher

Page 22: Karma - JS Test Runner

PluginsBrowser Launchers

Test Framework

Reporters

Preprocessors

Page 23: Karma - JS Test Runner

karma-jasmine

karma-mocha

karma-qunit

karma-requirejs

Page 24: Karma - JS Test Runner

PluginsBrowser Launchers

Test Framework

Reporters

Preprocessors

Page 25: Karma - JS Test Runner

karma-junit-reporter

karma-coverage

reporters: [‘junit’],

junitReporter : { outputFile: 'test-reports.xml', suite: 'My Suite'}

reporters: [‘coverage’],

coverageReporter: { type : 'html', dir : 'coverage/'}

Page 26: Karma - JS Test Runner

PluginsBrowser Launchers

Test Framework

Reporters

Preprocessors

Page 27: Karma - JS Test Runner

karma-coverage

preprocessors: { './app/assets/javascripts/**/*.js': 'coverage'}

preprocessors: { '**/*.handlebars': 'ember'}

karma-ember-preprocessor

Page 28: Karma - JS Test Runner

Running just one spec?

Page 29: Karma - JS Test Runner

Running just one spec?

iit(“should do something”, function(){});

ddescribe(“component”, function(){});

Page 30: Karma - JS Test Runner

Debug

http://localhost:9876/debug.html

Page 31: Karma - JS Test Runner

Grunt-Karma

karma: { ci: { configFile: 'karma.conf.js', singleRun: true, browsers: ['PhantomJS'] }}

Page 32: Karma - JS Test Runner

Running on CI?

Page 33: Karma - JS Test Runner

Running on CI?karma start --singleRun=true --browsers

PhantomJS --reporters junit

Page 34: Karma - JS Test Runner

Karma!


Recommended