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]);
|
|||
|
}
|