Closed tjbeatrice closed 9 years ago
After further reading and debugging, I believe this is an issue related to karma itself... not necessarily the launcher?
In this snippet within the socket keeps re-connecting.
`socketServer.sockets.on('connection', function(socket) { log.debug('A browser has connected on socket ' + socket.id);
var replySocketEvents = events.bufferEvents(socket, EVENTS_TO_REPLY);
socket.on('register', function(info) {
var newBrowser;
var isRestart;
if (info.id) {
newBrowser = capturedBrowsers.getById(info.id) || singleRunBrowsers.getById(info.id);
}
if (newBrowser) {
isRestart = newBrowser.state === Browser.STATE_DISCONNECTED;
newBrowser.reconnect(socket);
// We are restarting a previously disconnected browser.
if (isRestart && config.singleRun) {
newBrowser.execute(config.client);
}
} else {
newBrowser = injector.createChild([{
id: ['value', info.id || null],
fullName: ['value', info.name],
socket: ['value', socket]
}]).instantiate(Browser);
newBrowser.init();
// execute in this browser immediately
if (config.singleRun) {
newBrowser.execute(config.client);
singleRunBrowsers.add(newBrowser);
}
}
replySocketEvents();
});
});`
If I comment out this line it works fine. Obviously not a real solution ;)
newBrowser.reconnect(socket);
Not sure why it keeps thinking it is a new browser?
If anybody else finds this problem, I was able to fix it by adding a configuration option to karma runner:
browserNoActivityTimeout: 2000,
So my Grunt task looks like this:
karma: {
unit: {
configFile: 'config/karma.conf.js',
// can overwrite any options from the config file
reporters: ['progress', 'junit'],
junitReporter: {
outputFile: 'build-test-results.xml'
},
browsers: ['IE'],
browserNoActivityTimeout: 2000,
singleRun: true
}
}
Very new to unit testing with JavaScript.
I have some basic tests which I am running via karma-runner.
When using Chrome as a test browser... no issue. However when executing tests for IE (8) my tests are getting executed multiple times. After logging at DEBUG level I get the following output:
INFO [IE 8.0.0 (Windows 7)]: Connected on socket srYcBFnPtDJ4EwGY7uI2 with id 36846622
DEBUG [launcher]: IE (id 36846622) captured in 14.396 secs
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2)
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2)
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2)
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2)
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2)
DEBUG [IE 8.0.0 (Windows 7)]: New connection srYcBFnPtDJ4EwGY7uI2 (already have srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2, srYcBFnPtDJ4EwGY7uI2)
The number of connections (7) are exactly the number of times my tests are being run (the same tests 7 times over).
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
IE 8.0.0 (Windows 7) LOG: 'no header DOM test'
Any ideas?
Versions I am using: