karma-context
v0.0.1-alpha1
Published
peer-pressure [pre-alpha] =============
Downloads
2
Readme
peer-pressure [pre-alpha]
This originally grew out of another project where I attempted to use existing testing projects only to find some basic assumptions had been made, not the least of which is plugins and servers do not run concurrently.
Because I'm testing browser based p2p stuff the only way I could get the behaviors I needed was to start fresh.
peer-pressure
is a simple extension to your current testing frameworks to add browser testing in the background, through the existing interfaces, rather than building another "runner" solution. in this way we can get parallel subtests executing as tests in the respective browser, but all assemble to a single test target in the test suite.
Installation
npm install --save-dev peer-pressure
Import
ES5
var peer = require('peer-pressure').with(<configuration>);
ES6
import * as peerPressure from 'peer-pressure';
var peer = peerPressure.with(<configuration>);
Configuration
Use Mocha + Webpack and test in Chrome + FireFox (note these will eventually be independent modules)
{
browsers : [
require('../browsers/chrome'),
require('../browsers/firefox')
],
framework : require('../frameworks/mocha'),
packager : require('../packagers/webpack'),
}
Case 1 : One Subtest Inside Test (One Browser, using mocha)
define('some standard mocha test context', function(){
it('does something', function(testDone){
peers.test(function(context, done){
//this executes remotely in an isolated fresh browser context
done();
}, function(err, info){
//this executes in *this* context
testDone();
});
});
});
Case 2 : One Subtest as a Test (One Browser, using mocha)
define('some standard mocha test context', function(){
peers.can('do something', function(context, done){
//this executes remotely in an isolated fresh browser context
done();
});
});
Case 3 : Three Subtests as a Test (Round robin browsers, using mocha)
define('some standard mocha test context', function(){
peers.can('do something', function(done){
//this executes remotely in an isolated fresh browser context
done();
}, function(done){
//this executes remotely in an isolated fresh browser context
done();
}, function(done){
//this executes remotely in an isolated fresh browser context
done();
});
});
Case 4 : Three Subtests as a Test (Specific browsers, using mocha)
define('some standard mocha test context', function(){
peers.can('do something', function firefox(done){
//this executes remotely in an isolated fresh browser context
done();
}, function chrome(done){
//this executes remotely in an isolated fresh browser context
done();
}, function local(done){
//this executes remotely in an isolated fresh browser context
done();
});
});