45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
"use strict";
|
||
|
||
var TestDiscovery = require("./helper/test-discovery");
|
||
var TestCase = require("./helper/test-case");
|
||
var path = require("path");
|
||
var argv = require("yargs").argv;
|
||
|
||
var testSuite;
|
||
if (argv.language) {
|
||
testSuite = TestDiscovery.loadSomeTests(__dirname + "/languages", argv.language);
|
||
} else {
|
||
// load complete test suite
|
||
testSuite = TestDiscovery.loadAllTests(__dirname + "/languages");
|
||
}
|
||
|
||
// define tests for all tests in all languages in the test suite
|
||
for (var language in testSuite) {
|
||
if (!testSuite.hasOwnProperty(language)) {
|
||
continue;
|
||
}
|
||
|
||
(function (language, testFiles) {
|
||
describe("Testing language '" + language + "'", function () {
|
||
this.timeout(10000);
|
||
|
||
testFiles.forEach(
|
||
function (filePath) {
|
||
var fileName = path.basename(filePath, path.extname(filePath));
|
||
|
||
it("– should pass test case '" + fileName + "'",
|
||
function () {
|
||
|
||
if (path.extname(filePath) === '.test') {
|
||
TestCase.runTestCase(language, filePath);
|
||
} else {
|
||
TestCase.runTestsWithHooks(language, require(filePath));
|
||
}
|
||
|
||
}
|
||
);
|
||
}
|
||
);
|
||
});
|
||
})(language, testSuite[language]);
|
||
} |