55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/* global QUnit, mocha, jasmine */
|
|
|
|
import QUnitAdapter from './adapters/QUnitAdapter.js'
|
|
import MochaAdapter from './adapters/MochaAdapter.js'
|
|
import JasmineAdapter from './adapters/JasmineAdapter.js'
|
|
import {TestStart, TestEnd, SuiteStart, SuiteEnd} from './Data.js'
|
|
|
|
/**
|
|
* Auto registers the adapter for the respective testing framework and
|
|
* returns the runner for event listening.
|
|
*/
|
|
export function autoRegister () {
|
|
var runner
|
|
|
|
if (QUnit) {
|
|
runner = new QUnitAdapter(QUnit)
|
|
} else if (mocha) {
|
|
runner = new MochaAdapter(mocha)
|
|
} else if (jasmine) {
|
|
runner = new JasmineAdapter(jasmine)
|
|
} else {
|
|
throw new Error('Failed to register js-reporters adapater. Supported ' +
|
|
'frameworks are: QUnit, Mocha, Jasmine')
|
|
}
|
|
|
|
return runner
|
|
}
|
|
|
|
export function createSuiteStart (suite) {
|
|
return new SuiteStart(
|
|
suite.name,
|
|
suite.fullName.slice(),
|
|
suite.tests.map(createTestStart),
|
|
suite.childSuites.map(createSuiteStart)
|
|
)
|
|
}
|
|
|
|
export function createSuiteEnd (suite) {
|
|
return new SuiteEnd(
|
|
suite.name,
|
|
suite.fullName.slice(),
|
|
suite.tests.map(createTestEnd),
|
|
suite.childSuites.map(createSuiteEnd)
|
|
)
|
|
}
|
|
|
|
export function createTestStart (test) {
|
|
return new TestStart(test.name, test.suiteName, test.fullName.slice())
|
|
}
|
|
|
|
export function createTestEnd (test) {
|
|
return new TestEnd(test.name, test.suiteName, test.fullName.slice(),
|
|
test.status, test.runtime, test.errors.slice(), test.assertions.slice())
|
|
}
|