mirror of
https://github.com/nasa/openmct.git
synced 2024-12-21 22:17:49 +00:00
a4f396b876
Ignore bundles for which no test suites have been defined. Used to support development of framework layer (don't stall the test runner just because some bundle does not have defined tests yet), WTD-518.
141 lines
5.1 KiB
HTML
141 lines
5.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<link rel="stylesheet"
|
|
type="text/css"
|
|
href="platform/framework/test/lib/css/jasmine.css">
|
|
<script type="text/javascript"
|
|
src="platform/framework/lib/require.js">
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
require(
|
|
{
|
|
paths: {
|
|
'jasmine': 'platform/framework/test/lib/jasmine',
|
|
'jasmine-html': 'platform/framework/test/lib/jasmine-html',
|
|
'blanket-jasmine': 'platform/framework/test/lib/blanket_jasmine',
|
|
'console-runner': 'platform/framework/test/lib/console-runner'
|
|
},
|
|
shim: {
|
|
'jasmine': {
|
|
'exports': 'jasmine'
|
|
},
|
|
'jasmine-html': {
|
|
'exports': 'jasmine',
|
|
'deps': ['jasmine']
|
|
},
|
|
'console-runner': {
|
|
'exports': 'jasmine',
|
|
'deps': ['jasmine']
|
|
},
|
|
'blanket-jasmine': {
|
|
'exports': 'blanket',
|
|
'deps': ['jasmine']
|
|
}
|
|
}
|
|
},
|
|
[
|
|
'blanket-jasmine',
|
|
'jasmine-html',
|
|
'console-runner'
|
|
],
|
|
function () {
|
|
"use strict";
|
|
|
|
// Utility function; load a JSON definition
|
|
function loadJSON(file, callback) {
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open("GET", file);
|
|
xhr.onreadystatechange = function () {
|
|
if (xhr.readyState === 4) { // DONE
|
|
if (xhr.status === 200) {
|
|
callback(JSON.parse(xhr.response));
|
|
} else {
|
|
// No suite defined, so no tests
|
|
callback([]);
|
|
}
|
|
}
|
|
}
|
|
xhr.send();
|
|
}
|
|
|
|
// Run Jasmine upon full declared suite.
|
|
// Called after all tests loaded.
|
|
function runJasmine() {
|
|
var jasmineEnv = jasmine.getEnv(),
|
|
htmlReporter,
|
|
titleReporter;
|
|
jasmineEnv.updateInterval = 250;
|
|
|
|
htmlReporter = new jasmine.HtmlReporter();
|
|
//https://github.com/jcarver989/phantom-jasmine/issues/2
|
|
window.console_reporter = new jasmine.ConsoleReporter();
|
|
|
|
titleReporter = new jasmine.Reporter();
|
|
titleReporter.reportRunnerResults = function (runner) {
|
|
document.title = runner.results().passed() ?
|
|
"PASSING" : "FAILING";
|
|
};
|
|
|
|
jasmineEnv.addReporter(htmlReporter);
|
|
jasmineEnv.addReporter(new jasmine.BlanketReporter());
|
|
jasmineEnv.addReporter(window.console_reporter);
|
|
jasmineEnv.addReporter(titleReporter);
|
|
jasmineEnv.specFilter = function (spec) {
|
|
return htmlReporter.specFilter(spec);
|
|
};
|
|
jasmineEnv.currentRunner().execute();
|
|
}
|
|
|
|
function lookupSource(component) {
|
|
return component.src;
|
|
}
|
|
|
|
function lookupSpec(component) {
|
|
return component.spec;
|
|
}
|
|
|
|
// Run a full list of specs.
|
|
// Should be done after loading and path-correcting all specs
|
|
function runSpecs(components) {
|
|
blanket.options({'filter': components.map(lookupSource)});
|
|
require(components.map(lookupSpec), runJasmine);
|
|
}
|
|
|
|
// Run all test suites contained in all bundles
|
|
function runSuites(bundles) {
|
|
var components = [], count = 0;
|
|
|
|
function addSuite(bundle) {
|
|
function fixPath(name) {
|
|
return {
|
|
spec: bundle + "/test/" + name + "Spec",
|
|
src: bundle + "/src/" + name
|
|
};
|
|
}
|
|
|
|
function addSpecs(suiteSpecs) {
|
|
components = components.concat(suiteSpecs.map(fixPath));
|
|
count += 1;
|
|
if (count === bundles.length) {
|
|
runSpecs(components);
|
|
}
|
|
}
|
|
|
|
loadJSON(bundle + "/test/suite.json", addSpecs);
|
|
}
|
|
|
|
bundles.forEach(addSuite);
|
|
}
|
|
|
|
// Set the ball rolling; load and run all test suites
|
|
loadJSON("bundles.json", runSuites);
|
|
}
|
|
);
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|